这是我的架构:
let userSchema = new Schema({
email: { type: String, required: true },
password: { type: String, required: true },
books: [{ cover: String, title: String, link: String }],
});
我正在将一个对象推送到books数组,只有当该对象尚不存在时 . 我不明白为什么这不起作用:我说找到用户,检查 books
数组以确保 Headers 不存在将新对象添加到books数组中 . 但是重复仍会出现在我的数组中 .
note :查询正在一个函数内执行,该函数传递 model
,_ user
,并且包含书籍数据的对象名为 info
,因此 info.title
.
model.findOneAndUpdate(
{ email: user.email, 'books.title': { $ne: 'info.title ' } },
{ $addToSet: { "books": { title: info.title, cover:
info.cover, link: info.link } } },
{ new: true },
(err, user) => {
if (err) throw err;
console.log(user);
}
)
欣赏方向
1 回答
来自MongoDB $ addToSet文档https://docs.mongodb.com/manual/reference/operator/update/addToSet/#behavior
你也可以在这里找到一个好的答案MongoDB - $addToSet on a list of Embedded Document