2017-11-21 1 views
1

私は以下のドキュメントをmongodbに持っていて、X0000000005X00000000010の間のreferenceIdフィールドに基づいてドキュメントを削除しようとしましたが、カスタムフィールドに基づいてmongoドキュメントを削除するための記事は見つかりませんでした。誰かが可能な場合、私はこの削除を行うのを助けてください?Mongodo dbドキュメントをカスタムフィールド間で削除する

{ 
    "_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

次の簡単なクエリは動作するはずです:

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

あなたはdelete()は、右の記録に影響を与えることを確認するために、最初に同じフィルタを使用してfind()を実行したい場合があります。これは明らかにこれはその後になるだろう:

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

、あなたが$lteを交換する必要がある場合があります値X0000000005X00000000010

の間にあなたの

の正確な定義に依存し、 $gte演算子が他のもの($gtおよび/または$lt)を出力しています。

1

db.collection.remove({"referenceId":{"$ lte": "X00000000010"、 "gte": "X0000000005"}})

関連する問題