作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个用于 Lists
的 MongooseJS 架构,其中每个列表都包含一个 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
的最佳方法是什么?
最佳答案
使用 $ne 避免重复
List.findOneAndUpdate( {_id:listId},{items.item: {$ne: itemId}} { $push: { items: {item:itemId, isSelected:false} } });
`
关于mongodb - 推送到 MongooseJS 子文档而不创建重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39522749/
我是一名优秀的程序员,十分优秀!