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

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

1回复

使用Java对mongodb中的子文档数组进行排序

我在mongodb文档中有一个子文档数组。 我想对这些子文档进行排序。 我发现可以在更新数组时进行排序。 链接: http : //docs.mongodb.org/manual/reference/operator/update/sort/ 我想在Java中执行此操作。 这是
1回复

如何在MongoDB Java驱动程序3中插入文档

使用mongodb java驱动程序的第3版(特别是v3.0.1)来复制文档的惯用方法是什么? 我们有一个会话集合,当一个新会话被创建或修改时,我们想要在一个操作中插入它 - 而不是必须查询文档是否存在然后插入或替换。 我们的旧upsertion代码使用了scala驱动程序casba
1回复

如何计算MongoDB Java集合中的文档? [复制]

这个问题已经在这里有了答案: 用mongodb java驱动程序查找后如何调用计数操作(5个答案) 使用MongoDB 3.0 Ja
1回复

将MongoDB文档的ArrayList加载到Java类中

所以我想将此ArrayList lineaCompra加载到我的Java类中。 他们有相同的atribbuts,但我找不到办法。 这是Mongo中的文档: 我的Java课 LineaCompra类(我加载的类) 我尝试加载的代码 希望有人知道该怎么做。
4回复

如何在Java中删除mongodb集合中的所有文档

我想删除Java集合中的所有文档。 这是我的代码: 这是正确的方法吗? 我正在使用MongoDB 3.0.2
4回复

使用Java中的autoincrement字段在mongodb中插入文档

我试图在一个事务中从Java插入带有序列号的文档。 类似于以下内容: 是否可以从Java做到这一点? 最好使用官方的Java驱动程序。
2回复

计数文档MongoDB Java

我是MongoDB的新手,我发现计算嵌套文档的子代数相当复杂。 这是我的'users'收藏集的一部分。 } 我希望能够在“播放列表”(播放列表子级)中检索“视频”的数量并检索视频数据,我该怎么做? 我编写了以下代码,将video添加到给定的playlist :
1回复

Java中的MongoDB文档更新:编码错误或驱动程序错误?

我正在使用MongoDB Java驱动程序v3.2.2,并使用以下指令将新的String数组字段添加到现有文档中: 它创建以下异常: org.bson.codecs.configuration.CodecConfigurationException:找不到类java.util.
1回复

java mongodb 3.0:在内部文档数组中查找值

我正在使用java和mongodb v.3.0.7。 我有一个带有内部游戏分数的玩家列表。 这是插入文档的测试: 要查找某个玩家是否被禁止参加特定游戏,我正在这样做: 有一种使用嵌入式mongodb方法查找文档的更快方法: 提供id_device和游戏名? 谢谢
1回复

使用java查找包含mongodb中特定值的数组的文档

根据此链接提供的答案: 查找包含特定值的数组的文档 ,我尝试使用此语句获取java中的项目 但它一直说$ in值必须是一个数组,而我的arrayMine是一个数组。 java中正确的语法应该是什么?