2017-06-04 88 views
0

我有一組技術人員在下面。如何在一個命令中刪除或拉取任務和保留日期中的數據?MongoDb刪除2個數據

db.technicians.find().pretty() 
{ 
    "_id" : ObjectId("592acc916a32c48647427b2f"), 
    "firstName" : "Pj", 
    "lastName" : "Rizal", 
    "tasks" : [ 
      ObjectId("593435177492fb214c3a8694"), 
      ObjectId("5934389179439d2c20f07210"), 
    ], 
    "reservedDates" : [ 
      { 
        "date" : "2017-06-29T16:00:00.000Z", 
        "time" : "2017-06-04T07:14:16.130Z", 
      }, 
      { 
        "date" : "2017-06-29T16:00:00.000Z", 
        "time" : "2017-06-04T07:14:16.130Z", 
      }, 
    ] 


} 
+0

db.technicians.update({},{ $拉:{reservedDates:{日期和時間: '2017-06-29T16:00:00.000Z'}}},{ 多:真} –

回答

0
db.technicians.update({}, 
    {$pull: {reservedDates: { date: '2017-06-29T16:00:00.000Z'}}}, 
    {multi: true} 
+0

設置多選項以便每個文檔都被更新,而不僅僅是第一個。 –

+0

編號「multi」適用於「集合中的多個文檔」,而不是默認的「one」.OP詢問如何從數據庫中刪除/ ''reservedDates「''''tasks」''數組在單個更新語句中,有一個特定的方法可以做到這一點,但這不是。 –

0

根據MongoDB的文檔

的$拉操作者從現有陣列刪除一個 值或匹配指定條件的值的所有實例。

在上面提到的MongoDB文檔reservedDates字段代表一個嵌入式文檔。

要從屬於匹配特定條件的文檔的嵌入式文檔中刪除條件,使用$ pull操作符更新操作需要在MongoDB shell中執行。

+0

這並不回答這個問題。 ](https://docs.mongodb.com/manual/reference/operator/update/pull/)以及對這個問題的評論。這裏沒有提到所問的問題甚至是企圖。 –