我的项目是基于 GMONGO 框架构建的,所有域都是使用属性 id 作为字符串创建的。因此,当应用程序是应用程序时,grail 框架将创建带有 _id 属性的 mongodb 集合。 在 UI 中,检索 _id 存在限制。因此,在服务中,“_id”被重写为“id”以解决该问题。 我们可以默认使用“id”而不是“_id”创建集合吗?
不,你不能。如果您不指定任何内容,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, ...}
希望这有帮助。
在mongoDB v3.4中,您可以创建没有_id索引的集合。使用以下语句
db.createCollection("myCollection", { autoIndexId: false })