我有一个包含以下数据的集合:
{ "_id" : ObjectId("4e3951905e746b3805000000"), "m" : "hello", "r" : [{ "_id" : ObjectId("4e3951965e746b8007000000"), "u" : 3, "m" : "response1" }, { "_id" : ObjectId("4e39519d5e746bc00f000000"), "u" : 3, "m" : "response2" }, { "_id" : ObjectId("4e3953dc5e746b5c07000000"), "u" : 3, "m" : "response3" }, { "_id" : ObjectId("4e3953ea5e746bd40f000001"), "u" : 3, "m" : "response" }], "u" : 3, "w" : 3 } { "_id" : ObjectId("4e3952c75e746bd807000001"), "m" : "asdfa", "r" : [{ "_id" : ObjectId("4e39544e5e746bc00f000001"), "u" : 3, "m" : "response5" }], "u" : 3, "w" : 3 }
任何人都可以建议如何从只有子文件id的'r'键中删除子文档,我要去del?
例如,我想del id一个id为4e39519d5e746bc00f000000的子文档所以这个子文档应该被删除
{ "_id" : ObjectId("4e39519d5e746bc00f000000"), "u" : 3, "m" : "response2" },
Andrew Orsic.. 25
这很简单,你只需要使用$ pull运算符:
db.items.update( {}, { $pull : { r : {"_id": ObjectId("4e39519d5e746bc00f000000")} } }, false, false )
objmagic.. 7
dbh.users.update({"_id": ObjectId("4e39519d5e746bc00f000000")}, {"$unset":{"r":1}},False,False)
尝试使用未设置
参考:MongoDB:更新"$ unset"的修饰符语义
这很简单,你只需要使用$ pull运算符:
db.items.update( {}, { $pull : { r : {"_id": ObjectId("4e39519d5e746bc00f000000")} } }, false, false )
dbh.users.update({"_id": ObjectId("4e39519d5e746bc00f000000")}, {"$unset":{"r":1}},False,False)
尝试使用未设置
参考:MongoDB:更新"$ unset"的修饰符语义