我有一个用于MongooseJS的List
架构,其中每个列表包含一个ListItems
数组。每个ListItem
只是对Item
的引用和isSelected
标记。就像这样:
const ListItemSchema = new mongoose.Schema({
item: { type:mongoose.Schema.Types.ObjectId, ref:'Item' },
isSelected: Boolean,
});
const ListSchema = new mongoose.Schema({
name: String,
items: [ListItemSchema],
});
我只需使用$push
就可以将一个Item
推送到一个List
中。
List.findOneAndUpdate(
{_id:listId},
{
$push: {
items: {item:itemId, isSelected:false}
}
}
);
这个方法是可行的,但它允许我将同一个Item
多次推送到List
中。
在检查重复项的同时,最好的方法是如何添加Items
到这种结构中?
{item:itemId,isSelected:false}
也将是一个新的独特对象吗? 我如何告诉$addToSet
以item
字段为关键字? - nicholas