繁体   English   中英

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

[英]How to query documents using “_id” field in Java mongodb driver without using the collection name?

这是我要获取的文件。

{"_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)

如何取得文件?

您必须提到什么是集合。 但是您可以尝试一下。

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;
    }

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM