如何使用$ gt运算符删除具有两个条件的mongodb文档?

时间:2016-05-25 06:59:14

标签: java mongodb

我想检索以下信息:

delete from database where name = 'AAA' and age>20;

但是对于Java中的MongoDB。基本上,它应该删除包含单词AAA且年龄大于20的文档。我知道MongoDB中有$in运算符,但是如何使用Java驱动程序在Java中执行相同操作?我一直在努力寻找它,但一无所获。我试过了:

query = new BasicDBObject("age", new BasicDBObject("$gt", "20"), new BasicDBObject("name", "AAA"));

我要删除的JSON就是这样。

{"school" : "NewSchool" , "name" : "AAA" , "age" : "50"}

1 个答案:

答案 0 :(得分:0)

您想要的是查找术语:

{
   "name" : "AAA",
   "age" : { $gt : 20 }
}

将其构建为您的基本数据库对象,或者只使用新的3.x过滤器为您创建Bson。 (因为我个人只使用3.x,这是适当的例子):

MongoClient client = ...
MongoDatabase db = client.getDatabase(...);
MongoCollection<Document> coll = db.getCollection(...);
coll.deleteMany(Filters.and(Filters.eq("name", "AAA"), Filters.gt("age", 20)));