我想检索以下信息:
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"}
答案 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)));