【问题标题】:How to create mongodb collection without _id如何在没有 _id 的情况下创建 mongodb 集合
【发布时间】:2017-06-14 01:33:51
【问题描述】:

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

【问题讨论】:

    标签: mongodb grails gorm-mongodb gmongo


    【解决方案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, ...}

    希望这会有所帮助。

    【讨论】:

    • _id 如果您没有在域中定义 id 将被创建,但我正在我的域中定义 id 属性,即使 mongo 正在创建 _id 而不是 id。我的要求是获得一个 gson 对象,其密钥是 id 而不是 _id
    • 有没有办法创建id而不是_id?
    • 我回答你不能。这就是 mongo 的工作方式。您可以选择另一个数据库,或者只是不关心系统中的 _id。希望这会有所帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-05
    • 2015-07-20
    • 1970-01-01
    • 2015-01-26
    • 1970-01-01
    • 1970-01-01
    • 2017-01-15
    相关资源
    最近更新 更多