私はMongoDBにコレクションを持っています。 そして、配列から項目を削除したい。
私の "users"コレクションは、オブジェクトの配列です。
は私が入力した場合:モンゴシェルで
db.users.find({"tasks.task_id" : "h58sjIdj3jJZ"}).pretty()
が、私はこの結果を得る:
{
"_id" : ObjectId("5955b45b7a4bf40544019359"),
"profile" : {
"name" : "Morning bay",
"email" : "[email protected]",
"phone" : "+1-641-155-88-84",
"description" : "Lorem ipsum dolor sit amet, consectetur adipisicing elit"
},
"tasks" : [
{
"task_id" : "h58sjIdj3jJY",
"time" : "11:15 AM",
"date" : "07/01/2017",
"description" : "Make 1st call to John White"
},
{
"task_id" : "h58sjIdj3jJZ",
"time" : "14:30 PM",
"date" : "07/09/2017",
"description" : "Send certificate and make Another call to J.White"
}
],
"progress" : [
{
"isActive" : "",
"description" : ""
}
]
}
だから、私のコレクション内のすべての項目は、次のようになります。 それは大丈夫です。
しかし、今では、ユーザーアイテムの1つの「タスク」配列から1つのアイテムを削除したいと考えています。
私が入力します。
db.users.update({}, {$pull : {"tasks" : {"task_id" : "h58sjIdj3jJZ"}}});
この結果を得る:
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 0 })
を私はエラーがどこにあるか私は理解していないので、同じように見えることでドキュメントとサンプルをお読みください。
それはすべき作品。あなたのmongodb版は何ですか? –
更新プログラムの第3引数として{multi:true}を追加できますか? 'db.users.update({}、{$ pull:{"タスク ":{" task_id ":" h58sjIdj3jJZ "}}}、{マルチ:true});' –
はすでに試してみましたが、役に立たないです。 – alexfrize