如何使用Java mongodb驱动程序中的“_id”字段查询文档而不使用集合名称?

时间:2016-06-11 08:05:29

标签: java mongodb

这是我想要的文件。

{"_id": {"$oid": "5747f303631e1e261019914d"},
 "school": "aaa", "name": "Kamal", "likes": 200}

我想通过传递_id而不给它的集合来获得这个。

public DBObject findDocumentById(String id) {
    BasicDBObject query = new BasicDBObject();
    query.put("_id", new ObjectId(id));
    DBObject dbObj = collection.findOne(query);
    return dbObj;
}

当我在不同的集合中搜索不同的文档时,我不想说_id属于哪个集合。所以不用说collection.findOne(query)

如何获取文件?

1 个答案:

答案 0 :(得分:2)

你必须提到什么是收藏品。但你可以试试这个。

for(String collectionName : mongoOperation.getCollectionNames()){

    DBCollection collection = mongoOperation.getCollection(collectionName);

    DBObject query = new BasicDBObject();
    query.put("_id", new ObjectId(id));

    DBCursor cursor = dbCollection.find(query);

    if(cursor.hasNext()){
        //match
        //do something
        break;
    }

}