sql >> データベース >  >> NoSQL >> MongoDB

mongodb:存在しない場合は挿入

    「アップサート」をしたいようですね。 MongoDBには、これに対する組み込みのサポートがあります。 update()呼び出しに追加のパラメーター{upsert:true}を渡します。例:

    key = {'key':'value'}
    data = {'key2':'value2', 'key3':'value3'};
    coll.update(key, data, upsert=True); #In python upsert must be passed as a keyword argument
    

    これにより、if-find-else-updateブロックが完全に置き換えられます。キーが存在しない場合は挿入され、存在する場合は更新されます。

    前:

    {"key":"value", "key2":"Ohai."}
    

    後:

    {"key":"value", "key2":"value2", "key3":"value3"}
    

    書き込むデータを指定することもできます:

    data = {"$set":{"key2":"value2"}}
    

    これで、選択したドキュメントは「key2」の値のみを更新し、他のすべては変更されません。



    1. MongoSocketReadException:ストリームの終わりに時期尚早に到達しました(非アクティブな期間の後)

    2. Node.jsを使用してMongoDBでcursor.forEach()を使用するにはどうすればよいですか?

    3. バッチでmongoDBレコードを検索する(mongoid ruby​​アダプターを使用)

    4. MongoDBとRobomongo:接続できません(認証)