MongoDBの一括操作を使用して文書を挿入しています。MongoDB bulk operator、挿入されていない場合は挿入
私がしたいのは、ドキュメントが見つからない場合にのみ挿入することです。見つかった場合(アップアップ)は更新したくありません。
どのようにすればいいですか?
ただし、この場合であっても:
var obj = {
item: 'test'
}
bulk.find({ item: {$ne : obj.item}}).upsert().updateOne(obj);
bulk.execute();
これが見つからない場合は実際には何も挿入していないようです。
EDIT:
私はもう少し明確にするために、これを更新したかったです。
バルクAPIを使用して実行しようとしている操作は2つあります.1つは更新し、もう1つは挿入する操作です。
文書では、次のようになります。
{
item: 'test',
categories: [{
name: 'one',
attr: 'two'
}]
}
私が何をしたいのですがどのような項目の値が見つからない場合は、OBJを挿入しています。しかし、見つかった場合、categories.name
が見つからない場合、$push
カテゴリオブジェクトはcategories
配列になります。ドキュメントが見つかってカテゴリが存在する場合は、何もしないでください。
お返事ありがとうございます。もう少し明確にするために質問を更新しました。私はあなたが言っていることをしようとしましたが、私はそこに正確にはいません。本当に助けに感謝します。 – dzm
なぜ地球上に '.upsert()'があるのですか?時には、開発者がどのようにして常識を無視することができたのだろうか。直感的には、.updateOne({$ setOnInsert:obj}、{upsert:true}) 'ではないでしょうか?開発者の人生を恐ろしいものにするために、常に1つの逸脱していることを除いて、すべてが並んでいます。 – Rexford