2017-01-17 1 views
0

Я внедренный документ в моей схемесоздать код вставки документа с родительским вставлять идентификатор

var option = new mongoose.Schema({ 
option: {type: String, required: true}, 
nextItem: {type: String, required: true}// here I want to add next embedded document(item) id 
}); 
var item = new mongoose.Schema({ 
     name: {type: String, required: true}, 
     options: [option], 
     createdAt: {type: Date, default: Date.now()}, 
     parentItem: {type: String, required: true}, // here I want to add previous embedded document(item) id 
    }); 

    var category = new mongoose.Schema({ 
     title: {type: String, required: true}, 
     items: [item] 
    }); 

на основе элемента, выбранного пользователем, я должен показать еще один пункт. Как я могу получить следующий и предыдущий внедренный документов идентификатор при сохранении на MongoDB

ответ

0

Смотрите population section в Node.js документации :)

Ниже я модифицирована ваша схема-х (вы, возможно, придется корректировать имена схем)

var option = new mongoose.Schema({ 
option: {type: String, required: true}, 
nextItem: { type: mongoose.Schema.Types.ObjectId, ref: 'Option' }// here I want to add next embedded document(item) id 
}); 

var item = new mongoose.Schema({ 
     name: {type: String, required: true}, 
     options: [option], 
     createdAt: {type: Date, default: Date.now()}, 
     parentItem: { type: mongoose.Schema.Types.ObjectId, ref: 'Item' }, // here I want to add previous embedded document(item) id 
    }); 

    var category = new mongoose.Schema({ 
     title: {type: String, required: true}, 
     items: [{ type: mongoose.Schema.Types.ObjectId, ref: 'Item' }] 
    }); 
+0

Спасибо, но здесь я хочу, чтобы следующий id элемента не был id, поэтому было бы nextItem: {type: mongoose.Schema.Types.ObjectId, ref: 'Item'}, правильно? и еще один вопрос: как я могу добавить objectId во время сохранения на mongodb, потому что я не знаю идентификатор следующего элемента при создании – mtahir08

+0

Да, затем измените его на Item (или как вы его назвали). Вы также можете обновить элемент, когда знаете следующий элемент. Или придерживайтесь параметров parentItem. option & item кажется похожим, где вы храните элемент в опции и опцию в элементе ... – HoefMeistert