Mongodb在没有_id字段的情况下插入doc

Ram*_*mya 11 mongodb mongodb-java mongodb-query

我是mongodb的新手.

  1. 我需要插入一个没有自动生成_id字段的doc.

  2. 我需要将字段Tenant_id设置为唯一,或者需要将"_id"字段更改为Tenant_id.

怎么做?

这样的事情

     Tenant
        {Tenant_id: 123, Tenant_info: ...}
Run Code Online (Sandbox Code Playgroud)

Ste*_*lon 23

默认情况下,如果不存在,则所有常规集合都会自动插入_id字段.

但是,通过将autoIndexId参数明确设置为false,可以在创建集合时更改此行为.

> db.createCollection("noautoid", { autoIndexId: false })
{ "ok" : 1 }
Run Code Online (Sandbox Code Playgroud)

然后您可以插入没有_id字段的文档.但是一些驱动程序,比如javascript one(以及mongo控制台),自己添加_id字段.在mongo控制台中,您可以这样做:

> db.noautoid._mongo.insert(db.noautoid._fullName, {name: "Jack"})
> db.noautoid.find()
{ "name" : "Jack" }
Run Code Online (Sandbox Code Playgroud)

有关autoIndexId字段的更多信息可以在MongoDB文档中找到.此页面是关于Capped Collections的,但autoIndexId字段对于常规集合和上限集合都是通用的.

  • 不再允许 - 复制需要_id字段,因此应始终存在. (4认同)