3

我有一组像:

["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")]}}

但我不知道如何ObjectId("51eae100c2e6b6c222ec3431")使用 java 在列表中创建

4

1 回答 1

3

{ "$oid" : "51eae100c2e6b6c222ec3431"}ObjectId("51eae100c2e6b6c222ec3431")只是格式不同。

请参阅此页面了解不同的格式:http ://docs.mongodb.org/manual/reference/mongodb-extended-json/

如果查询没有找到任何文档(并且您确定它们存在于集合中),那么还有其他一些问题。我会先仔细检查您要连接的服务器以及数据库和集合的名称。

抢。

于 2013-07-21T14:35:33.533 回答