我的项目是基于GMONGO框架构建的,并且所有域都是使用属性id作为字符串创建的。当应用程序是app时,grail框架工作将创建具有_id属性的mongodb集合。 在用户界面中,有一个限制,即在服务中追溯_id.So。#id; #id"被重写为" id"克服这个问题。 我们可以使用" id"创建集合吗?默认情况下而不是" _id"?
答案 0 :(得分:1)
不,你不能。如果您没有指定任何内容,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, ...}
希望这有帮助。