var CarSchema = new Schema({
name: {type: String},
partIds: [{type: Schema.Types.ObjectId, ref: 'Part'}],
});
var PartSchema = new Schema({
name: {type: String},
props: [
{ colour: {type: String}, shape: {type:String} }
],
});
НапримерMongoose: Наполнение вложенного массива объекта с проекцией
Car = {
name: "BMW",
partIds:[ObjectId("57baa43e152654f80aac36a6")]}
Part = {
_id: ObjectId("57baa43e152654f80aac36a6"),
name: "Piston",
props: [{colour:"red", shape: "Cubical"},{colour:"green", shape: "cylindrical"}]
Так что, когда я запрашиваю я должен получить документ, как это:
Car = {
name: "BMW",
partIds: [{
_id:ObjectId("57baa43e152654f80aac36a6"), name:"Piston", props: [{colour:"red", shape:"cubical"}]
}
Массив реквизита должен иметь только элемент с цвет красный
Я хочу заполнить автомобиль частичным массивом таким образом, чтобы его опорный массив имел только объект с цветом ур красный. В любом случае, чтобы сделать это, или мне придется идти старомодным способом и петля через массив реквизита, соответствующий его цвету с красным.
У вас уже есть коллекция 'part'? Или вы его создаете и сохраняете свой идентификатор в коллекции 'car'? –
Коллекция деталей различна, и ее идентификаторы хранятся в частях коллекций автомобилей –
, поэтому вы хотите создать документ 'part' и сохранить его идентификатор в коллекции' car', если цвет красный? –