【问题标题】:How to update a value inside an object with schema.findoneandupdate (Mongodb/mongoose)如何使用 schema.findoneandupdate (Mongodb/mongoose) 更新对象内部的值
【发布时间】:2022-01-15 21:06:25
【问题描述】:

我在 discord.js 中创建了一个不和谐机器人,我想创建一个跟踪用户消息的数据库,我已经完成了跟踪部分和数据库结构,如下所示:

_id: guildId,
metrics: {
  [userId]: 
  {
    messageCount: 1
  }
}

我使用的是 mongoose 架构,那么如何使用 schema.findoneandupdate 来递增地增加 messageCount 值?

【问题讨论】:

  • $inc更新操作符,mongodb文档有例子。还要重新考虑您的架构,您将数据(userIds)保存在字段中,最好将它们保存在嵌入文档的数组中,例如。对于您的更新,它工作起来很简单,但如果您想做其他事情,您可能会遇到问题,您可能需要复杂的事情,例如 ObjectToArray 并返回 Object 等。

标签: node.js mongodb mongoose discord.js


【解决方案1】:

你可以使用$inc操作符:

更多细节: https://docs.mongodb.com/manual/reference/operator/update/inc/

【讨论】:

    猜你喜欢
    • 2017-06-24
    • 2015-12-12
    • 2021-07-21
    • 2018-05-08
    • 2012-02-06
    • 2018-02-21
    • 2015-06-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多