如何创建没有_id的mongodb集合

问题描述 投票:0回答:2

我的项目是基于 GMONGO 框架构建的,所有域都是使用属性 id 作为字符串创建的。因此,当应用程序是应用程序时,grail 框架将创建带有 _id 属性的 mongodb 集合。 在 UI 中,检索 _id 存在限制。因此,在服务中,“_id”被重写为“id”以解决该问题。 我们可以默认使用“id”而不是“_id”创建集合吗?

mongodb grails gorm-mongodb gmongo
2个回答
2
投票

不,你不能。如果您不指定任何内容,Mongo 将自动创建 _id。

https://docs.mongodb.com/v3.2/reference/glossary/

在您的情况下,您可以将

index
添加到
id
字段,并且在运行查询时只需添加投影以排除 _id。

所以你的数据中将会有这样的东西

{_id: mongoDbID, id: yourId, ...}

并像这样运行查询

collection.find({id: yourId}).project({_id: 0}).toArray();

你会得到这个结果

{id: yourId, ...}

希望这有帮助。


0
投票

在mongoDB v3.4中,您可以创建没有_id索引的集合。使用以下语句

db.createCollection("myCollection", { autoIndexId: false })

© www.soinside.com 2019 - 2024. All rights reserved.