我有一组ID,如:
["51eae104c2e6b6c222ec3432", "51eae104c2e6b6c222ec3432", "51eae104c2e6b6c222ec3432"]
我需要使用这组ID找到所有文档。
BasicDBObject query = new BasicDBObject();
BasicDBList list = new BasicDBList();
ObjectId ob1 = new ObjectId("51eae100c2e6b6c222ec3431");
ObjectId ob2 = new ObjectId("51eae100c2e6b6c222ec3432");
list.add(ob1);
list.add(ob2);
query.append("_id", new BasicDBObject("$in", list));
此查询找不到任何内容,因为它与
相同{ "_id" : { "$in" : [ { "$oid" : "51eae100c2e6b6c222ec3431"} , { "$oid" : "51eae100c2e6b6c222ec3432"}]}}
要找到它必须是
的东西{_id:{$in:[ObjectId("51eae100c2e6b6c222ec3431") , ObjectId("51eae104c2e6b6c222ec3432")]}}
但我不知道如何使用java
在列表中创建ObjectId("51eae100c2e6b6c222ec3431")
答案 0 :(得分:3)
{ "$oid" : "51eae100c2e6b6c222ec3431"}
与ObjectId("51eae100c2e6b6c222ec3431")
的格式不同。
请参阅此页面了解不同的格式:http://docs.mongodb.org/manual/reference/mongodb-extended-json/
如果查询未找到任何文档(并且您确定它们存在于集合中),那么还有其他一些问题。我会先仔细检查你要连接的服务器以及数据库和集合的名称。
罗布。