Mongodb插入没有_id字段的文档

标签 mongodb mongodb-java mongodb-query

我是 mongodb 的新手。

  1. 我需要插入一个不自动生成_id字段的文档。

  2. 我需要将 Tenant_id 字段设置为唯一或需要将“_id”字段更改为 Tenant_id。

怎么做?

类似的东西

     Tenant
        {Tenant_id: 123, Tenant_info: ...}

最佳答案

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

但是,当您创建集合时,可以通过将 autoIndexId 参数显式设置为 false 来更改此行为。

> db.createCollection("noautoid", { autoIndexId: false })
{ "ok" : 1 }

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

> db.noautoid._mongo.insert(db.noautoid._fullName, {name: "Jack"})
> db.noautoid.find()
{ "name" : "Jack" }

更多关于 autoIndexId 字段的信息可以在 MongoDB documentation 中找到。 .此页面是关于 Capped Collections 的,但 autoIndexId 字段对常规和 capped collections 都是通用的。

关于Mongodb插入没有_id字段的文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12378320/

相关文章:

macos - npm install -g mongodb 没有在 OSX 10.8.4 上全局安装 mongodb?

angularjs - MEAN 堆栈的文件夹结构

java - 如何进行从 AggregationOutput 到 POJO 的映射?

mongodb - 当副本集在本地 IP 地址上相互连接时,连接到远程 MongoDB 副本集

mongodb - mongodb聚合中的条件$first

java - MongoOperations 添加/删除 json 到 MongoDB

mongodb - MongoDB的mapreduce和Hadoop之间有什么异同?

node.js - MongoError $in 需要一个数组

java - 使用 $elemMatch 时如何投影第一个子文档以外的内容

mongodb - 为什么 $nin 比 $in 慢,Mon​​godb