Javascript Mongodb-按id和嵌入数组值搜索

Javascript Mongodb-按id和嵌入数组值搜索,javascript,node.js,mongodb,Javascript,Node.js,Mongodb,我正在尝试编写一个函数,该函数将根据ID搜索对象,以及对象中的嵌入数组中是否包含值 { "_id" : ObjectId("569bea91c0e1fee4063527ac"), "user" : ObjectId("568c65174fee132c36e199dd"), "votes" : 9, "image" : "./modules/deals/client/img/uploads/1546f914dba7e1732ea853cd70d79148.jpg", "price" : "

我正在尝试编写一个函数,该函数将根据ID搜索对象,以及对象中的嵌入数组中是否包含值

    {
"_id" : ObjectId("569bea91c0e1fee4063527ac"),
"user" : ObjectId("568c65174fee132c36e199dd"),
"votes" : 9,
"image" : "./modules/deals/client/img/uploads/1546f914dba7e1732ea853cd70d79148.jpg",
"price" : "12.95",
"retailer" : "argos.co.uk",
"voters" : [{

    "user" : ObjectId("568c65174fee132c36e199dd"),
     },
     {
     "user" : ObjectId("568c65174fee132c36e199dd"),
     },
     {
     "user" : ObjectId("568c65174fee132c36e199dd"),

}]
我想按id和投票者用户进行搜索。

我相信我需要正确完成此功能

exports.dealByIdAndVoter = function(req, res) {
    Deal.count({

            $where: function () {


            }

    },
        function(err, dealByIdAndVoter) {
            if (err) {
                return res.status(400).send({
                    message: errorHandler.getErrorMessage(err)
                });
            } else {
                console.log(dealByIdAndVoter);
                var data = {};
                data.count = dealByIdAndVoter;
                res.json(data);
            }
        });
};

如果不需要使用
$where
函数,可以通过以下方式使用运算符构造查询:

Deal
  .find({
    $or: [
      // Match by _id
      { _id: req.id },
      // Match by any user in the 'voters' array with a matching 'user' field.
      { 'voters.$.user': req.id }
    ]
  })
  .count(function(err, count) {
    // Handle error here

    res.json(count);
  });

如果不需要使用
$where
函数,可以通过以下方式使用运算符构造查询:

Deal
  .find({
    $or: [
      // Match by _id
      { _id: req.id },
      // Match by any user in the 'voters' array with a matching 'user' field.
      { 'voters.$.user': req.id }
    ]
  })
  .count(function(err, count) {
    // Handle error here

    res.json(count);
  });