我想知道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");

我希望可以使用类似的方法来识别文档。 有什么建议吗?

===============>>#1 票数:1

如果您在coll.insert(document);之后查找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);
}

  ask by Li' translate from so

未解决问题?本站智能推荐: