2017-11-21 2 views
1

Ich habe unter Dokumente in Mongodb, versuche, die Dokumente auf dem referenceId Feld zwischen den Werten X0000000005 und X00000000010 zu löschen, konnte ich keine Artikel zum Löschen von Mongo-Dokumente auf benutzerdefinierten Feld finden, können jemand bitte helfen Sie mir, diese Löschung zu tun, wenn es möglich ist?Mongodo db löschen Dokumente zwischen benutzerdefinierten Feldern

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

Antwort

2

Die folgende einfache Abfrage sollte funktionieren:

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

Sie könnten ein find() mit dem gleichen Filter zuerst, um sicherzustellen, ausgeführt werden sollen, dass die delete() die richtigen Datensätze beeinflussen. Das wäre dies offensichtlich dann:

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

Auch abhängig von der genauen Definition Ihrer

zwischen den Werten X0000000005 und X00000000010

Sie könnten die $lte tauschen müssen und $gte Betreiber für etwas anderes ($gt und/oder $lt).

1

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

Verwandte Themen