【问题标题】:How to update multiple documents in mongoose如何在猫鼬中更新多个文档
【发布时间】:2022-02-04 04:12:33
【问题描述】:

我的架构:

水果: { 类型:字符串, }, 天: { 类型:数字 } 我今天卖了一堆水果 a=[苹果、芒果、番石榴、香蕉]

文件:

{ _id:12381823281 水果:芒果, 天数:3 } { _id:12381823282 水果:苹果, 天数:5 }

现在我必须在 db 中检查 doc.fruit== a[i] 是否为 a 的每个元素,如果存在,则将天数加一,如果不创建新文档 { 水果=a[i], ,天数:1 } 即

我想得到 将文档更新为

{ _id:12381823281 水果:芒果, 天数:4 }, { _id:12381823282 水果:苹果, 天数:6 }, { _id:12381823283 水果:香蕉, 天数:1 }, { _id:12381823284 水果:番石榴, 天数:1 }

不使用forloop怎么做

【问题讨论】:

  • 您的样本无效。所有文档的文档 ID 不能相同。
  • 其目的并非实际

标签: mongodb mongoose


【解决方案1】:

如果不存在,您可以使用upsert: true 创建一个文档,如下所示:

upsert docs

db.collection.update({
  "fruits": a[i]
},
{
  "$inc": {
    "days": 1
  }
},
{
  "upsert": true
})

示例here 的值不存在,here 的值存在。

【讨论】:

    猜你喜欢
    • 2020-10-18
    • 2011-10-05
    • 2018-01-22
    • 2018-08-20
    • 2020-06-27
    • 2018-09-08
    • 1970-01-01
    • 2013-12-04
    • 1970-01-01
    相关资源
    最近更新 更多