で一意である場合、配列にobjecctを追加するこれは私のスキーマです:オブジェクトフィールドがMondoDB /マングース
let userSchema = new Schema({
email: { type: String, required: true },
password: { type: String, required: true },
books: [{ cover: String, title: String, link: String }],
});
私は、そのオブジェクトが存在しない場合にのみ、書籍配列にオブジェクトをプッシュしています。私はこれが動作しない理由を理解していない:私はユーザが見つけたと言っているbooks
配列は、書籍の配列に新しいオブジェクトを追加していないことを確認する配列を確認してください。しかし、私の配列には重複がまだ残っています。
注:クエリはuser
、model
が渡される関数の内部で実行されている、および書籍データを含むオブジェクトがinfo.title
したがってinfo
と呼ばれます。
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);
}
)
値が文書である場合には、MongoDBのは、アレイの試合で、既存のドキュメント場合、ドキュメントが 複製であると判断したMongoDBの$ addToSetのドキュメントから