如果另一个数组字段的大小大于5,Mongoose会更新字段。

问题描述 投票:0回答:1

我是Mongoose的新手,我找不到实现某个更新查询的方法.我有下一个模式。

{
  usersJoined: [{
    type: String
  }],
  status: {
    type: Number,
    default: 0
  },
}

我想在userJoined数组大小为5的时候将状态更新为1.我使用下面的查询来查询正确的文档:

Model.findOneAndUpdate(
  {
    status: 0,
    usersJoined: {$ne: user}
  },
  {
    $push: {usersJoined: user}
  }
);
mongodb mongoose mongodb-query mongoose-schema
1个回答
0
投票

当userJoined数组的大小为5时,我想把状态更新为1。

使用数组 $size 操作符来过滤记录,findOneAndUpdate方法将更新第一个匹配的记录。参考文档 findOneAndUpdate. 如果这不适合你的情况,请检查其他的。更新方法

db.collection.findOneAndUpdate(
    {"userJoined": {"$size": 5}},
    {$set: {"status": 1}},
    {returnNewDocument: true} //if true, returns the updated document.
);

例子

© www.soinside.com 2019 - 2024. All rights reserved.