検索

ホームページ  >  に質問  >  本文

node.js - mongo で一連のデータをバッチ更新し、配列内のデータが存在しない場合に挿入操作を実行するにはどうすればよいですか?

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

リーリー

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

リーリー

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

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

淡淡烟草味淡淡烟草味2766日前1015

全員に返信(2)返信します

  • ringa_lee

    ringa_lee2017-05-24 11:37:41

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

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

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

    ご参考までに。

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


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

    返事
    0
  • 某草草

    某草草2017-05-24 11:37:41

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

    返事
    0
  • キャンセル返事