【发布时间】:2017-06-14 01:33:51
【问题描述】:
我的项目是在 GMONGO 框架上构建的,所有域都是使用属性 id 作为字符串创建的。所以当应用程序是应用程序时,grail 框架将创建具有 _id 属性的 mongodb 集合。 在 UI 中,检索 _id 存在限制。因此,在服务中,“_id”被重写为“id”以克服该问题。 我们可以默认使用“id”而不是“_id”创建集合吗?
【问题讨论】:
标签: mongodb grails gorm-mongodb gmongo
我的项目是在 GMONGO 框架上构建的,所有域都是使用属性 id 作为字符串创建的。所以当应用程序是应用程序时,grail 框架将创建具有 _id 属性的 mongodb 集合。 在 UI 中,检索 _id 存在限制。因此,在服务中,“_id”被重写为“id”以克服该问题。 我们可以默认使用“id”而不是“_id”创建集合吗?
【问题讨论】:
标签: mongodb grails gorm-mongodb gmongo
不,你不能。如果你不指定,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, ...}
希望这会有所帮助。
【讨论】: