当前位置: 首页 > 知识库问答 >
问题:

如何使用java驱动程序框架在集合中复制mongodb文档

姜杜吟
2023-03-14

作为mongodb世界的新成员,当我试图在一个集合中复制一个mongo文档时遇到了麻烦。复制的意思是,我想把旧文档复制到一个新文档中,这个新文档有一个new _id字段,并改变几个字段的值。

mongodb java驱动程序是我的操作环境。

有人已经这样做了吗?

共有2个答案

宋正真
2023-03-14

我只是做了我所谓的文档副本:

只需将要复制/克隆的文档加载到光标中即可

while(thecursor.hasNext()){文档doc=thecursr.next();doc.put(Constants.ID,ObjectId.get().toString());collection.insertOne(doc);}

看起来奏效了!

国胤
2023-03-14

您可以将检索到的文档_id设置为新的 ObjectId() 并保存。壳中的示例

> db.sample.insert({"docName":"Old Document"});
WriteResult({ "nInserted" : 1 })
> var doc = db.sample.findOne( {"docName":"Old Document"} );
> doc
{ "_id" : ObjectId("55ad11ea8306f3e7da87d62d"), "docName" : "Old Document" }
> doc._id = new ObjectId();
ObjectId("55ad122c8306f3e7da87d62e")
> db.sample.insert(doc);
WriteResult({ "nInserted" : 1 })
> db.sample.find().pretty();
{ "_id" : ObjectId("55ad11ea8306f3e7da87d62d"), "docName" : "Old Document" }
{ "_id" : ObjectId("55ad122c8306f3e7da87d62e"), "docName" : "Old Document" }
 类似资料:
  • 我有一个包含联系人的集合,每个联系人文档都有和属性。 现在我想使用Java和版本3.2中的MongoDb Java驱动程序查询数据库。 谢谢。

  • 有人能给我举个例子,说明如何使用PHPs新驱动程序计算MongoDB集合中的文档数吗(http://php.net/manual/en/set.mongodb.php) 所有示例似乎都在使用旧的驱动程序或库!

  • 问题内容: 我正在尝试通过搜索“ _id”键在MongoDB中查找文档。我的文件看起来像这样- 我正在尝试将此文档搜索为- 但我得到以下错误- BasicDBObject的append方法支持(字符串键,值),如果我将“ _id”作为String传递给此方法,则不会匹配任何文档。 所以我的问题是如何传递“ _id”? 问题答案: 通过使用as作为查询来解决

  • 请帮我找到一个合适的解决办法 收集被存储的用户详细信息app_users 用户预订是存储预订的集合 我正在使用的查找(左连接)查询是 我想从用户集合中选择具有相应用户详细信息的预订,但返回为空,因为mongodb正在将字符串与objectId进行比较,所以是否有方法执行此任务?

  • 我开始在我的应用程序中使用MongoDB。我正在使用Robo3T学习和测试查询,现在,我正在将查询翻译成C#。 我对蒙古机器人3T的质疑 在Robo 3T上运行上述脚本,其检索到以下结果: 现在,我试图在我的. NET MVC项目上重现这个结果,我面临着将子字符串转换为C#的困难。 C#代码 这种方式很好,但是,它是按整个字符串日期分组的,我想按短字符串日期分组,如:“2019-03-01”。 我

  • 问题内容: Mongo和Java专家。我们的团队决定使用最近在MongoDB中引入的全文本搜索API。但是,我们发现使用Java MongoDB驱动程序执行命令有些困难。 这是我正在使用的代码: 这是我打印时得到的 问题答案: 摘自Google网上论坛(https://groups.google.com/forum/?fromgroups#!topic/mongodb- user/7jWUbunU