【问题标题】:Use MongoDB db.collection.remove(query) in java在 java 中使用 MongoDB db.collection.remove(query)
【发布时间】:2013-11-21 23:42:50
【问题描述】:

MongoDB Java 驱动程序中是否有方法可以调用我在 MongoDB shell 文档中看到的 db.collection.remove(query) 方法? 也就是说,我知道查找要从 MongoDB 中删除的所有文档所需的确切标准,但我找不到一种方法来一次调用以在一次旅行中删除这些记录。我能想到的就是找到文档,然后一个一个删除。

我看到了 http://docs.mongodb.org/manual/reference/method/db.collection.remove/ 这意味着应该有办法做到这一点,但我无法弄清楚 Java 调用来让我去那个调用。

感谢您的帮助

【问题讨论】:

    标签: java mongodb mongodb-java


    【解决方案1】:

    删除 age 属性为 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);
    

    DBCollectionBasicDBObject 是 Java API 中最重要的两个类。

    【讨论】:

      【解决方案2】:

      此外,要从文档中删除特定值,您可以将以下代码与 Mongo Java 3.2 一起使用

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

      上面的代码将首先找到具有公司 = StackOverflow 的文档,然后从该文档中取消设置(删除)指定 = SE-1 键/值。

      【讨论】:

        【解决方案3】:

        添加和更新 Mongo

        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();
          }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-08-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-07-05
          相关资源
          最近更新 更多