Mongodo db在自定义字段之间删除文档

时间:2017-11-21 20:14:23

标签: mongodb mongodb-query robo3t

我在mongodb中有以下文档,我试图根据值referenceIdX0000000005之间的X00000000010字段删除文档,我找不到任何基于删除mongo文档的文章在自定义字段上,有人可以帮我删除它吗?

{
    "_id" : ObjectId("5a0f13ad0a83924b84d16b7d"),    
    "senderId" : "783",
    "clientId" : "146196",
    "referenceId" : "X00000000001",    
    "file" : "jAAAAAECAAABaAAAAKQAAJyMKYqPYvFQKJrZ/fqYjDKNdXdOMK58tPQ"
}

{
    "_id" : ObjectId("5a0f13ad0a83924b84d16b7e"),    
    "senderId" : "783",
    "clientId" : "146196",
    "referenceId" : "X00000000002",    
    "file" : "jAAAAAECAAABaAAAAKQAAJyMKYqPYvFQKJrZ/fqYjDKNdXdOMK58tPQ"
}
.
.
.
.
.
.
{
    "_id" : ObjectId("5a0f13ad0a83924b84d16b7f"),    
    "senderId" : "783",
    "clientId" : "146196",
    "referenceId" : "X00000000020",    
    "file" : "jAAAAAECAAABaAAAAKQAAJyMKYqPYvFQKJrZ/fqYjDKNdXdOMK58tPQ"
}

2 个答案:

答案 0 :(得分:2)

以下简单查询应该有效:

db.collection.remove({"referenceId":{$gte:"X00000000005"}, "referenceId":{$lte:"X00000000010"}})

您可能希望首先使用相同的过滤器运行find(),以确保delete()会影响正确的记录。那显然是这样的:

db.collection.find({"referenceId":{$gte:"X00000000005"}, "referenceId":{$lte:"X00000000010"}})

此外,取决于您的

的确切定义
  

X0000000005X00000000010

之间

您可能需要将$lte$gte运算符替换为其他内容($gt和/或$lt)。

答案 1 :(得分:1)

db.collection.remove({" referenceId":{" $ lte":" X00000000010"," gte":&# 34; X0000000005"}})