Arrays 无法使用$pullAll
我有一个集合,其中包含如下所示的文档Arrays 无法使用$pullAll,arrays,mongodb,pull,Arrays,Mongodb,Pull,我有一个集合,其中包含如下所示的文档 { "_id" : ObjectId("56d92901f9d573cc1c1fb8bb"), "busEntryExitInformation" : { "dateTime" : ISODate("2016-03-04T06:19:45.914+0000"), "busEntryExitEvent" : [ { "plateNumber" : "A
{
"_id" : ObjectId("56d92901f9d573cc1c1fb8bb"),
"busEntryExitInformation" : {
"dateTime" : ISODate("2016-03-04T06:19:45.914+0000"),
"busEntryExitEvent" : [
{
"plateNumber" : "ADFN3R2",
"direction" : "EXIT",
"routeNumber" : NumberInt(929),
"driverID" : "DId5",
"driverName" : "john",
"_id" : ObjectId("56d92901f9d573cc1c1fb8c0")
},
{
"plateNumber" : "ADFN3R4",
"direction" : "EXIT",
"routeNumber" : NumberInt(652),
"driverID" : "DId2",
"driverName" : "jack",
"_id" : ObjectId("56d92901f9d573cc1c1fb8bf")
},
{
"plateNumber" : "ADFN3R8",
"direction" : "EXIT",
"routeNumber" : NumberInt(500),
"driverID" : "DId5",
"driverName" : "john",
"_id" : ObjectId("56d92901f9d573cc1c1fb8be")
},
{
"plateNumber" : "ADFN3R7",
"direction" : "ENTRY",
"routeNumber" : NumberInt(500),
"driverID" : "DId3",
"driverName" : "mack",
"_id" : ObjectId("56d92901f9d573cc1c1fb8bd")
},
{
"plateNumber" : "ADFN3R2",
"direction" : "EXIT",
"routeNumber" : NumberInt(652),
"driverID" : "DId2",
"driverName" : "sandesh",
"_id" : ObjectId("56d92901f9d573cc1c1fb8bc")
}
],
"cameraIntrinsics" : {
"cameraFocalLength" : NumberInt(35),
"cameraAngle" : NumberInt(20),
"imageWidth" : "1920",
"imageHeight" : "1080",
"frameRate" : NumberInt(25)
},
"cameraExtrinsics" : {
"cameraId" : NumberInt(1),
"cameraName" : "Under Route-090 NorthboundBridge",
"cameraDirection" : "Towards Northbound Lanes",
"cameraLatitude" : 1.350228,
"cameraLongitude" : 103.984889,
"cameraHeight" : NumberInt(30)
}
},
"__v" : NumberInt(0)
}
}
其中BusEntryExiteEvent是一个数组,我正在尝试删除数组元素,其中方向是集合中所有文档的出口
结果应包含所有带方向输入的文档
{
"_id" : ObjectId("56d92901f9d573cc1c1fb8bb"),
"busEntryExitInformation" : {
"dateTime" : ISODate("2016-03-04T06:19:45.914+0000"),
"busEntryExitEvent" : [
{
"plateNumber" : "ADFN3R7",
"direction" : "ENTRY",
"routeNumber" : NumberInt(500),
"driverID" : "DId3",
"driverName" : "mack",
"_id" : ObjectId("56d92901f9d573cc1c1fb8bd")
}
],
"cameraIntrinsics" : {
"cameraFocalLength" : NumberInt(35),
"cameraAngle" : NumberInt(20),
"imageWidth" : "1920",
"imageHeight" : "1080",
"frameRate" : NumberInt(25)
},
"cameraExtrinsics" : {
"cameraId" : NumberInt(1),
"cameraName" : "Under Route-090 NorthboundBridge",
"cameraDirection" : "Towards Northbound Lanes",
"cameraLatitude" : 1.350228,
"cameraLongitude" : 103.984889,
"cameraHeight" : NumberInt(30)
}
},
"__v" : NumberInt(0)
}
}
我正试着这样做
db.busEntryExitDoc.update(
{ $pull: { busEntryExitEvent: { "direction" : "EXIT"} } },
{ multi: false }
)
必须对所有文档执行此操作此处没有where条件如何执行请帮助您做错了第一个参数是“query”参数,此处应为空文档
db.busEntryExitDoc.update(
{},
{$pull:{“busEntryExitInformation.BusEntryExiteEvent”:{“方向”:“退出”}},
{multi:true}
)
同样的道理也适用于这种方法
db.busEntryExitDoc.update(
{},
{$pull:{“busEntryExitInformation.BusEntryExiteEvent”:{“方向”:“退出”}},
)
您做错了第一个参数是“query”参数,它在这里应该是一个空文档
db.busEntryExitDoc.update(
{},
{$pull:{“busEntryExitInformation.BusEntryExiteEvent”:{“方向”:“退出”}},
{multi:true}
)
同样的道理也适用于这种方法
db.busEntryExitDoc.update(
{},
{$pull:{“busEntryExitInformation.BusEntryExiteEvent”:{“方向”:“退出”}},
)
MongoDBupdate()
方法需要三个参数:db.collection.update(查询、更新、选项)
。如果要对所有文档执行更新
,只需使用空对象作为查询
:
db.busEntryExitDoc.update({},
{ $pull: { 'busEntryExitInformation.busEntryExitEvent' : {'direction' : "EXIT"} } },
{ multi: true }
);
另外,请注意使用来访问数组字段:必须将运算符指向数组,否则操作将失败。最后,使用{multi:true}
作为更新集合中的所有文档。MongoDBupdate()
方法需要三个参数:db.collection.update(查询、更新、选项)
。如果要对所有文档执行更新
,只需使用空对象作为查询
:
db.busEntryExitDoc.update({},
{ $pull: { 'busEntryExitInformation.busEntryExitEvent' : {'direction' : "EXIT"} } },
{ multi: true }
);
另外,请注意使用来访问数组字段:必须将运算符指向数组,否则操作将失败。最后,使用
{multi:true}
因为你想更新你收藏中的所有文档。对我帮助很大,对我帮助很大