2017-04-21 8 views
2

MongoDBを処理するためにmongooseを使用しています。値が見つからない場合はmongooseを使用して配列にオブジェクトを追加し、それ以外の場合はフィールドを更新します

私はpostNameに基づいて、この配列にオブジェクトを更新または挿入するHTTPリクエストをしたいと思っ次のドキュメント

Posts:Array 
    0:Object 
     _id:58f9b2c903110b2c543fb7d1 
     postName:Test1 
     postText:Test2 
     postCount:0 
     status:true 

を持っています。例えば

、私はpostNameの試合よりも、次の

{ 
    postName:Test1 
    postText:Test3 
    postCount:50 
    status:false 
} 

を渡し、私はそれだけでpostText、postCountとステータスを更新したいと思います。 postNameが配列内のオブジェクトのいずれとも一致しない場合は、新しいオブジェクトを挿入します。

この質問は、古い質問と重複している可能性があります。私は検索して答えを見つけることができませんでした。 私は$ setOnInsertを使用しようとしましたが、動作させることができませんでした。

+0

では不可能です。 update.update( 、 { upsert:true } ) ' –

+0

とは何ですか?私はそれをpostNameに基づいて作ることができますか?おかげ –

+0

db.collection.update({postName:Test1を}、{ postName:Test1を postText:Test3は postCount:50 ステータス:偽 }、{アップサート:真})私は理解し –

答えて

0

Veeramは答えが埋め込まれた配列文書にここ

PyMongo Update document with multiple records

アプセット見つけることができ、コメントで

を答えたように、この `デシベルを使用して、単一のクエリ

関連する問題