首页 > 解决方案 > 使用扩展 JSON 生成新 ObjectId 的 Mongodb 命令

问题描述

我有一个像下面这样的集合

在此处输入图像描述

我需要使用扩展 json 将一个新对象推送到“stores”数组中。

如何指示 Mongodb 为属性 _id 创建一个新的 ObjectId ?

我想知道这样的事情:

{
  '_id' : { '$oid' : '$<here_some_command_to_generate_new_oid_automatically>' },
  'address' : 'my store address',
  'contact' : 'John Doe'
}

标签: mongodbmongodb-query

解决方案


除非我误解了你,如果你只需要使用客户端生成,你可以像任何驱动程序为顶级文档所做的那样做。

在 java 中生成扩展 json 版本,您可以将JsonWriterSettings输出模式用作JsonMode.Extended. 就像是

JsonWriterSettings setting = JsonWriterSettings.builder().outputMode(JsonMode.EXTENDED).build();
Document id = new Document("_id", new ObjectId());
String extendedIdJson = id.toJson(setting);// {'_id' : { '$oid' : '507f191e810c19729de860ea' }}

推荐阅读