【问题标题】:How to put variable into my query? (Mongoose)如何将变量放入我的查询中? (猫鼬)
【发布时间】:2017-02-25 18:57:46
【问题描述】:

需要为我的用户添加用户 ID,这将是我的收藏项目计数 + 1。 例如,如果我有 100 个用户,下一个用户的 userID 将是 101。

User.count().exec(function (e, count) {
     console.log(count); // Count = 15, correct.
     newUser.userId = count + 1; // Ain't working...
});

那么如何将“count”变量添加到我的查询中? 还是更高级的方法,在猫鼬中获取自动增量(主键)?

【问题讨论】:

  • 为什么需要 id 自动递增?你这样做的目的是什么?您想要所有用户的唯一 ID,还是有其他动机
  • @Ravi Shankar 为每个用户提供唯一 ID 并创建类似 user/1 ... user/1242 的链接。您认为在 MongoDB 中添加唯一 ID 是个坏主意吗?

标签: node.js mongodb mongoose mongodb-query


【解决方案1】:

您的假设是正确的,即有一种不同的方法可以获取文档的“主键”。使用objName._id(在您的情况下为newUser._id)访问在创建对象时为您的文档生成的唯一值。

请注意,MongoDB 不是关系数据库,因此它不是主键,而是一串垃圾。如果您确实需要自动递增_id,您也可以使用here. 记录的过程来执行此操作。基本上,使用db.counters.insert 创建一个计数器,然后创建您自己的函数,该函数使用findAndModify 来获取您的序列号输入db.counters 然后增加它。最后,您可以通过将 _id 设置为在调用 insert 期间调用该函数的结果,将您的文档插入到 User(或类似的东西)中。

【讨论】:

    猜你喜欢
    • 2015-12-12
    • 1970-01-01
    • 2014-07-25
    • 2014-01-09
    • 1970-01-01
    • 1970-01-01
    • 2015-11-14
    • 2015-12-04
    • 2017-05-08
    相关资源
    最近更新 更多