在MongoDB控制台中,如何通过id删除记录?这是我的收藏:
[
{
"_id" : { "$oid" : "4d512b45cc9374271b02ec4f" },
"name" : "Gazza"
},
{
"_id" : { "$oid" : "4d513345cc9374271b02ec6c" },
"name" : "Dave",
"adminOf" : { },
"email" : "email@email.com"
}
]
以下是我尝试过的不起作用的命令:
db.test_users.remove( {"_id":{"$oid":new ObjectId("4d512b45cc9374271b02ec4f")}});
db.test_users.remove( {"_id":{"$oid":"4d513345cc9374271b02ec6c"}});
db.test_users.remove( {"_id":"4d512b45cc9374271b02ec4f"});
db.test_users.remove( {"_id":new ObjectId("4d512b45cc9374271b02ec4f")});
按姓名删除有效:
db.test_users.remove( {"name":"Gazza"});
这是在mongodb.org的浏览器外壳中,如果这有任何区别
由于
答案 0 :(得分:244)
非常接近。这将有效:
db.test_users.remove( {"_id": ObjectId("4d512b45cc9374271b02ec4f")});
即。对于ObjectId,您不需要 new 。
答案 1 :(得分:16)
答案是mongodb.org上的web控制台/ shell表现不同,而不是我预期的那样。在家安装的版本完美无故障,即; Web shell上自动生成的_id保存如下:
"_id" : { "$oid" : "4d512b45cc9374271b02ec4f" },
在家中设置相同的文档,自动生成的_id保存如下:
"_id" : ObjectId("4d5192665777000000005490")
查询对后者起作用没有问题。
答案 2 :(得分:12)
嗯,_id是你示例中的一个对象,所以你只需要传递一个对象
'db.test_users.remove({"_id": { "$oid" : "4d513345cc9374271b02ec6c" }})'
这应该有效
编辑:添加了跟踪paren以确保它已编译。
答案 3 :(得分:8)
如果您想通过ID列表删除,那么效果很好。
db.CollectionName.remove({
"_id": {
$in: [
ObjectId("0930292929292929292929"),
ObjectId("0920292929292929292929")
]
}
})
答案 4 :(得分:4)
我刚刚碰到了这个,这种变化对我有用:
db.foo.remove({**_id**: new ObjectId("4f872685a64eed5a980ca536")})
答案 5 :(得分:4)
副本集中是否有多个mongodb节点?
我发现(我使用的是通过Robomongo gui mongo shell,我认为在其他情况下同样适用)正确的删除语法,即
StringHelper.concatenateValues
除非您连接到副本集的主节点,否则...不起作用。
答案 6 :(得分:3)
首先从mongodb获取ObjectID函数 ObjectId = require(mongodb).ObjectID;
然后您可以使用删除功能
调用_id" _id" :ObjectId(" 4d5192665777000000005490")
答案 7 :(得分:2)
假设我们有这个虚拟集合:
{ "_id" : ObjectId("5ea53fedaa79db20d4e14284"), "item" : "planner", "qty" : 75 }
只需使用:
db.inventory.deleteOne({ _id: ObjectId("5ea53fedaa79db20d4e14284") })
它将作为响应而被删除:
{ "acknowledged" : true, "deletedCount" : 1 }
就这样。
答案 8 :(得分:1)
db.collection("collection_name").deleteOne({_id:ObjectID("4d513345cc9374271b02ec6c")})
答案 9 :(得分:0)
解决方案和示例:
1- C:\ MongoDB \ Server \ 3.2 \ bin> mongo(由于您尚未连接到任何数据库,因此尚未发出命令,您只连接到数据库服务器mongodb)。
2-
显示dbs analytics_database 0.000GB 本地0.000GB test_database 0.000GB
3-
使用test_database 切换到db test_database
4 -
db.Collection.remove({“_ id”:ObjectId(“5694a3590f6d451c1500002e”)},1); WriteResult({“nRemoved”:1})
现在你看到WriteResult({“nRemoved”:1})是1而不是0。
完成。
答案 10 :(得分:0)
即使该帖子已过时,也已弃用 collection.remove!!应该使用collection.delete_one
!
可以找到更多信息here under #remove