node.js - mongo で一連のデータをバッチ更新し、配列内のデータが存在しない場合に挿入操作を実行するにはどうすればよいですか?
淡淡烟草味
淡淡烟草味 2017-05-24 11:35:41
0
2
994

たとえば、mongo にタグテーブルがあり、データモデルは次のとおりです

リーリー

['mongoDB','node.js','mysql'] などのタグ名の配列ができました。
人気度をバッチで更新したいと考えています。そのようなタグがない場合は、それを挿入し、次のように実装します

リーリー

このような操作ですが、このコマンドを実行すると空のデータが追加されます

私が今実装している方法は、最初にクエリを実行することです。クエリは可能 クエリは可能、挿入操作は実行できない ただし、このような操作を実行するにはコードからタグ配列を何度も走査する必要があり、パフォーマンスが良くありません。専門家にもっと良い解決策があるかどうかを尋ねたいです。

淡淡烟草味
淡淡烟草味

全員に返信(2)
左手右手慢动作

1. 更新操作ステートメントは問題ありません。

2. 空のデータを追加したということは、条件を満たすドキュメントが見つからず、upsert が true に設定されていたため、フィールド ホットを含むドキュメントが挿入されたためです。

コレクションのドキュメントのステータスを確認して、もう一度試してみることもできます。更新操作に問題は見つかりませんでした。

ご参考までに。

MongoDB が大好きです!楽しむ!


2017 MongoDB 中国語コミュニティ北京ユーザー グループ カンファレンスが間もなく開催されます! QRコードを読み取って登録してください!

いいねを押す +0
某草草

mongodb で upsert を使用できるはずです
upsert({},{},true) true は、存在しない場合は書き込み、存在する場合は更新を意味します。
公式サポート フォーラムを参照できます:
http:// forum.foxera.com/モンゴ...

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート