【问题标题】:want to use _id instead of id in waterline with mongodb想在 mongodb 的水线中使用 _id 而不是 id
【发布时间】:2019-09-26 04:57:10
【问题描述】:

我有一个案例,我需要为我正在工作的给定项目中的所有模型更改主键名称 id 的默认引用和 _id。

有一个 express.js + mongoose 设置正在生产中。数据库中的数据由我们的用户使用移动应用程序直接引用。并且移动应用程序的代码非常清楚将 _id 读取为它接收到的所有 JSON 文档中的键。

由于sails使用默认键名为id的waterline,它映射到mongodb的_id,底层数据库将按原样使用,但在中间件上我们总是将其读取为 id

我已经在网上搜索并尝试在 config/models.js 中将默认 id 名称设置为 _id,但架构创建输出错误,指出 _id, _id 被使用了两次。 p>

【问题讨论】:

  • 您不需要在任何地方将 id 更改为 _id。只是模型配置。在其他地方,只需使用字符串类型的 'id'。
  • 您好,谢谢!但是......它并没有解决我的问题,因为我的移动应用程序被教育理解_id。我们在sailsjs中使用的模型以id为名称,json以id为key而不是_id。

标签: sails.js waterline sails-mongo


【解决方案1】:

生产数据库,Waterline ...我建议不要实际更改主键。哎呀,如果您使用的是更成熟的 ORM,我建议您不要使用这种活动扳手。

相反,我说,在您的操作中转换键名。例如在 action2 中,您只需在函数末尾返回模板变量:

  r = await Model.findOne(where);
  return {
    _id: r.id,  // <---- this bit <----
    etc: r.etc
  }

然后制作一个 JSON 结构作为你的视图模板。

【讨论】:

    猜你喜欢
    • 2011-10-25
    • 1970-01-01
    • 1970-01-01
    • 2015-04-16
    • 2019-10-08
    • 2022-01-17
    • 1970-01-01
    • 2020-07-29
    • 1970-01-01
    相关资源
    最近更新 更多