0

我想知道 MongoDB 是否为识别数据库中的文档提供了一些好的模式。假设我已经像这样初始化了一个数据库:

public static void main(String[] args) {

MongoClient mongo = new MongoClient("localhost", 27017);
DB db = mongo.getDB("testdb");

DBCollection coll = db.getCollection("mycollection");

BasicDBObject document = new BasicDBObject();
document.put("name", "Mike");
document.put("age", 25);
coll.insert(document);
}

现在如何获取插入数据库的“文档”?我已经知道键/值对查询可以找到文档,例如:

BasicDBObject query = new BasicDBObject();
query.put("name", "Mike");
DBObject dbObj = coll.findOne(query);

除了这种键/值对查询之外,还有其他方法可以识别文档吗?

如果要识别集合,可以通过匹配集合名称来完成:

DBCollection coll = db.getCollection("mycollection");

我希望有这样的东西来识别文件。有什么建议吗?

4

1 回答 1

1

如果您查看后面的document对象,coll.insert(document);您会发现_id驱动程序添加了一个字段。您可以使用此字段/值来查询确切的文档,因为 MongoDB 强制必须有一个_id字段并且它必须是唯一的。

把这一切放在一起:

public static void main(String[] args) {

    MongoClient mongo = new MongoClient("localhost", 27017);
    DB db = mongo.getDB("testdb");

    DBCollection coll = db.getCollection("mycollection");

    BasicDBObject document = new BasicDBObject();
    document.put("name", "Mike");
    document.put("age", 25);
    coll.insert(document);

    System.out.println(document.get("_id"));

    BasicDBObject query = new BasicDBObject();
    query.put("_id" , document.get("_id"));

    DBObject retrieved = collection.findOne(query);
    System.out.println(retrieved);
}
于 2013-04-16T02:56:26.520 回答