Node.js中的“ BadValue不支持的投影选项”错误

时间:2019-05-01 06:07:34

标签: node.js mongodb

MongoError:无法规范化查询:BadValue不支持的投影选项:$ inc:{count:1}

var totalActiveUser = (req, res, next) => {
TotalUser.findOne({ default: "active"}, { $inc: { count: 1 }},
 function(err, result) {
   if (err) throw err;
   console.log(result);   
   res.send(result);
  });

modelSchema:

   activeCount: {
   type: Number,
   count: 0,
   default:"active"
    },

1 个答案:

答案 0 :(得分:2)

您正在使用$ inc,它是findOne的更新操作,应与findOneandupdate一起使用。使用findOne,第二个{}成为投影。

此外,您进行此查询的目的是什么?

如果要更新,则:

var totalActiveUser = (req, res, next) => {
TotalUser.findOneAndUpdate({ default: "active"}, { $inc: { count: 1}},
 function(err, result) {
   if (err) throw err;
   console.log(result);   
   res.send(result);
  });

ADD multi:适用于所有更新

要计算活动用户数,请尝试以下操作:

TotalUser.aggregate(
  [
    {
      $match: {
        default:"active"
      }
    },
    {
      $count: "active_users"
    }
  ]
)

或不聚合:

TotalUser.find({"default" : "active"}).count()