【发布时间】:2020-07-29 21:32:04
【问题描述】:
当我打电话时
db.collection.remove({'condition':'some condition'});
这一行将删除所有匹配的条件文档。
如果我只想删除任何或第 n 个匹配条件中的一个怎么办?
【问题讨论】:
-
您为什么想要这样做?要删除的那个应该被删除而其他的离开了有什么特别之处?
标签: mongodb
当我打电话时
db.collection.remove({'condition':'some condition'});
这一行将删除所有匹配的条件文档。
如果我只想删除任何或第 n 个匹配条件中的一个怎么办?
【问题讨论】:
标签: mongodb
您需要为此执行两个单独的查询
从匹配的过滤器中只取一项
var item = db.collection.findOne({'condition':'some condition'})
并使用 id 删除项目
db.collection.remove({_id: item._id});
【讨论】:
db.collection.remove 现在有一个 justOne 标志
http://docs.mongodb.org/manual/reference/method/db.collection.remove/#db.collection.remove
【讨论】:
如果有多条记录,你只想删除第一条记录,那么在remove()方法中设置justOne参数。
这里,你只想删除1。因此,将“justOne”参数设置为1。
db.collection.remove({'condition':'some condition'},1);
【讨论】:
要从集合中删除一个文档,请使用以下命令
db.collectionname.remove({"_id": ObjectId("5473293d43ecdre56352457f3a")})
【讨论】:
只是一个
一个可选的布尔值。要将删除限制为仅一个文档,请设置为
true。省略使用默认值false并删除所有符合删除条件的文档。
您可以将justOne 设置为true,以便执行此操作。
之前 MongoDB 2.6 版:
db.collection.remove(
<query>,
<justOne>
)
MongoDB 版本 2.6 或更高版本:
db.collection.remove(
<query>,
{
justOne: <boolean>,
writeConcern: <document>
}
)
像这样:db.collection.remove({"condition": "some condition"}, {justOne: true});。
【讨论】:
我用过这个,它对我有用
db.eventList.remove({"_id":ObjectId("5d9f3bd0c02cef7d50bb97fb")});
这适用于 MongoDB shell 版本:3.2.17
这里 eventList ===> 集合
【讨论】:
难道你不能先运行一个查找来获取 id,然后在你有你想要的那个时删除吗?
【讨论】:
试试这个删除。
db.users.deleteOne({"_id": ObjectId("5473293d43ecdre56352457f3a")});
【讨论】:
例如,数据库的名称是“abc”,在该名称下有一个名为“用户”的集合,用户有一封电子邮件,即“test@test.com”,您要删除它: 1. 在终端上如果你输入'show dbs'(不带引号'')它会列出所有的数据库,包括'abc' 2.如果你输入'use abc',它会切换到你想要的db - abc(带有消息:“switched to db abc”) 3. 现在如果你输入'show collections',它会显示所有的收藏,包括'users' 4. 如果要列出此集合中的所有文档,只需键入:db.users.find({}) 5. 如果要删除此集合中的特定文档,请键入: db.users.remove({"email":"test@test.com"})
如果成功,它会显示 - WriteResult({ "nRemoved" : 1 })
【讨论】: