2013-11-21 27 views
3

MongoDB Java驅動程序中是否有方法調用我在MongoDB shell文檔中看到的db.collection.remove(query)方法? 也就是說,我知道我需要從MongoDB中找到所有要刪除的文檔的確切條件,但我無法找到一種方法在一次訪問中刪除這些記錄。我能弄清楚的是找到文件,然後逐個刪除它們。在java中使用MongoDB db.collection.remove(query)

我看到這個 http://docs.mongodb.org/manual/reference/method/db.collection.remove/ 這意味着應該有辦法做到這一點,但我想不通的Java調用讓我說,這一號召。

謝謝您的幫助

回答

8

要使用的25

MongoClient mongo = new MongoClient(new ServerAddress("localhost", 27017)); 
DB db = mongo.getDB("thedb"); 
DBCollection collection = db.getCollection("test"); 

BasicDBObject query = new BasicDBObject(); 
query.append("age", 25); 

collection.remove(query); 

DBCollectionBasicDBObjectage屬性中刪除的文件有兩個Java API中最重要的類。

1

而且從您記錄您可以使用下面的代碼與蒙戈的Java刪除特定值3.2

Document docToDelete = new Document("Designation", "SE-1"); 
objDbCollection.findOneAndUpdate(new Document("Company", "StackOverflow"), new Document("$unset", docToDelete)); 

上面的代碼會先找到其公司= StackOverflow的,然後取消設置(刪除)指定= SE-1關鍵文件/該文件的值。

0

添加和更新蒙戈

public class App { 
public static void main(String[] args) { 

    try { 

Mongo mongo = new Mongo("localhost", 27017); 
DB db = mongo.getDB("yourdb"); 

// get a single collection 
DBCollection collection = db.getCollection("dummyColl"); 

//insert number 1 to 10 for testing 
for (int i=1; i <= 10; i++) { 
    collection.insert(new BasicDBObject().append("number", i)); 
} 

//remove number = 1 
DBObject doc = collection.findOne(); //get first document 
collection.remove(doc); 

//remove number = 2 
BasicDBObject document = new BasicDBObject(); 
document.put("number", 2); 
collection.remove(document); 

//remove number = 3 
collection.remove(new BasicDBObject().append("number", 3)); 

//remove number > 9 , means delete number = 10 
BasicDBObject query = new BasicDBObject(); 
query.put("number", new BasicDBObject("$gt", 9)); 
collection.remove(query); 

//remove number = 4 and 5 
BasicDBObject query2 = new BasicDBObject(); 
List<Integer> list = new ArrayList<Integer>(); 
list.add(4); 
list.add(5); 
query2.put("number", new BasicDBObject("$in", list)); 
collection.remove(query2); 

//print out the document 
DBCursor cursor = collection.find(); 
    while(cursor.hasNext()) { 
     System.out.println(cursor.next()); 
    } 

    collection.drop(); 

    System.out.println("Done"); 

    } catch (UnknownHostException e) { 
e.printStackTrace(); 
    } catch (MongoException e) { 
e.printStackTrace(); 
    } 
相關問題