最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

$ inc仅当值大于0(Node.js mongodb)

运维笔记admin80浏览0评论

$ inc仅当值大于0(Node.js mongodb)

$ inc仅当值大于0(Node.js mongodb)

你好,我有以下更新查询

this.dbService.getCollection(DBCollections.CHANNEL)
  .updateMany(
    {
      'members.skipRounds': { $exists: true },
      _id: channelId,
    },
    { $inc: { 'members.$[].skipRounds': -1 } },
  ).catch(err => console.log(err));

如果当前值大于0,如何仅使skipRounds的值减-1?

这是我的频道收藏集的样子

Channels [
{
  _id:1
  users:[
  {
    _id:1
    skipRounds:1
  },
  {
    _id:2
    skipRounds:3
  },       
  ]
},
{
  _id:2
  users:[
  {
    _id:1
    skipRounds:3
  },
  {
    _id:2
    skipRounds:5
  },       
  ]
},   
] 
回答如下:

请选中此选项可能会对您有所帮助。

    this.dbService.getCollection(DBCollections.CHANNEL).updateMany(
    {
      'users.skipRounds': { $exists: true },
    },
    { $inc: { 'users.$[element].skipRounds': -1 } },
    { arrayFilters: [ { "element.skipRounds": { $gt: 0 } } ]}
).catch(err => console.log(err));
发布评论

评论列表(0)

  1. 暂无评论