1

MongoDBに特定のプロパティを含まない新しいドキュメントを挿入する方法はありますか?

たとえば、次のようなドキュメントを挿入するとします。

{
    'f_name': 'Jim',
    'l_name': 'Jones',
    'age': 21,
    'country': 'UK',
    ...etc...
}

ただし、このドキュメントを挿入したかったのは、

{
    'f_name': 'Jim',
    'l_name': 'Jones'
}

まだ存在していませんでした。単一の操作でこれを行う方法はありますか(たとえば、アップサートのように、既存の一致するドキュメントが存在する場合は変更せずに)、またはこれを2つの別々の操作で行う必要がありますか(存在するかどうかを確認するためのルックアップ、その後インサート)?

これはそれほど重要ではありませんが、知っておくと非常に役立ち、多くの時間を節約できます。

4

1 に答える 1

1

次の2つのオプションのいずれかを使用できます。

  • 複合一意インデックス
  • そのようなアップサート:

    db.col.update({f_name:'Jim'、l_name:'Jones'}、{//ここにあなたのドキュメント}、{upsert:true})

これは基本的に、これらのフィールドがすでにこれらの値と更新を持っているドキュメントを検索し(同じ値でフィールドを更新できます)、検索条件が結果を返さない場合は挿入します。

最後の試みは、2つのクエリを使用することですが、上記のアップサートは非常にうまく機能するはずです。

于 2012-10-15T13:01:57.873 に答える