我正在尝试使用 QueryBuilder(MongoDB Java API 2.9.1)构建一个 $in 查询。当查询是字符串数组时我没有问题,但是当我尝试使用 ObjectIds 数组时它不起作用(不返回任何内容)。
我能够成功运行查询并从控制台获得结果:
在控制台查询: db.collection.find({removed:false,app_id: {$in : [ObjectId("4f75c533ac99d845186e19b2"), ObjectId("4f75c533ac99d845186e19b3")]}})
QueryBuilder (MongoDB Java API 2.9.1) 创建的查询:
对象[] id;
Java 代码:DBObject query = QueryBuilder.start("app_id").in(ids).and("removed").is(false).get();
DBObject 上的 ToString 产生: { "app_id" : { "$in" : [ { "$oid" : "4f75c533ac99d845186e19b2"}]} , "removed" : false}
不确定我是否做错了什么或 API 不支持和 $in 类型的 ObjectId 查询。有任何想法吗?