只删除MongoDB中的一个文档

时间:2011-10-25 01:54:38

标签: mongodb

当我打电话

db.collection.remove({'condition':'some condition'});

这一行将删除所有匹配的条件文件。

如果我只想删除任何一个或第n个匹配条件中的一个?

9 个答案:

答案 0 :(得分:12)

您需要为此

执行两个单独的查询
  • 只从匹配过滤器中选择一项

    var item = db.collection.findOne({'condition':'some condition'})
    
  • 并使用ID

    删除该项目
     db.collection.remove({_id: item._id});
    

答案 1 :(得分:10)

答案 2 :(得分:2)

要从集合中删除一个文档,请使用下面的命令

db.collectionname.remove({“_ id”:ObjectId(“5473293d43ecdre56352457f3a”)})

答案 3 :(得分:1)

根据MongoDB db.collection.remove() reference

  

来说只是个

     

可选的布尔值。要将删除限制为仅一个文档,请设置为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});

答案 4 :(得分:0)

难道你不能先运行一个find来获取id然后删除你想要的那个吗?

答案 5 :(得分:0)

如果有多条记录并且您只想删除第一条记录,则在remove()方法中设置justOne参数。

在这里,你只想删除1.因此,设置&#34; justOne&#34;参数为1。

db.collection.remove({&#39; condition&#39;:&#39;某些条件&#39;},1);

答案 6 :(得分:0)

尝试删除该内容。

db.users.deleteOne({"_id": ObjectId("5473293d43ecdre56352457f3a")});

答案 7 :(得分:0)

我用了这个,对我有用

' Module 1
Option Explicit

Public pApp As AppEvents

Sub GetAppClass()
    Set pApp = New AppEvents
    Set pApp.App = Application
End Sub

这适用于MongoDB Shell版本:3.2.17

答案 8 :(得分:0)

例如,数据库的名称为“ abc”,并且在该名称下有一个名为“用户”的集合,并且用户收到的电子邮件为“ test@test.com”,您想将其删除: 1.在终端上,如果键入“ show dbs”(不带引号“”),它将列出所有数据库,包括“ abc” 2.如果键入“ use abc”,它将切换到所需的数据库-abc(并显示消息:“ switched to db abc”) 3.现在,如果您键入“显示收藏集”,它将显示包括“用户”在内的所有收藏集 4.如果要列出此集合中的所有文档,只需键入:db.users.find({}) 5.如果要删除此集合中的特定文档,请键入: db.users.remove({“ email”:“ test@test.com”})

如果成功,它将显示-WriteResult({“ nRemoved”:1})