2017-06-04 87 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/)以及对这个问题的评论。这里没有提到所问的问题甚至是企图。 –