Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript MongoDB,仅显示集合中某个状态与另一个状态匹配的对象_Javascript_Node.js_Mongodb - Fatal编程技术网

Javascript MongoDB,仅显示集合中某个状态与另一个状态匹配的对象

Javascript MongoDB,仅显示集合中某个状态与另一个状态匹配的对象,javascript,node.js,mongodb,Javascript,Node.js,Mongodb,我有两个系列-竞争和产品。竞赛包含产品objectID,产品包含Competition\u status 我想做的只是显示产品状态为“完整”或“当前”的比赛 我已经实现了这一点,但是,我也看到了具有“待定”状态的竞争,只是这两个产品对象为空。我需要从输出的竞赛对象中删除这些竞赛 api.mongo.competition.find(filter) .populate('product', 'name competition_status', { competition_status:

我有两个系列-竞争和产品。竞赛包含产品
objectID
,产品包含
Competition\u status

我想做的只是显示产品状态为“完整”或“当前”的比赛

我已经实现了这一点,但是,我也看到了具有“待定”状态的竞争,只是这两个产品对象为空。我需要从输出的竞赛对象中删除这些竞赛

api.mongo.competition.find(filter)
      .populate('product', 'name competition_status', { competition_status: { $in: ['Complete', 'Current'] } })


      .exec(
        function(err, competitions) {
          if(err) {
            next(err, {});
            return;
          }
          next(err, competitions);
        });
试用

{ competition_status: { $nin: ['Pending'] }
而不是

{ competition_status: { $in: ['Complete', 'Current'] }
你可以在这里获得更多信息

从 populate不是一个连接,它只是一个方便的函数,可以使用其他查询来跟踪主查询,从而从其他集合中提取相关数据。你需要有

{ competition_status: { $in: ['Complete', 'Current'] } 


mongo.competition.find()

谢谢您的回答。这不就是调整“in”/“notin”吗?似乎我目前使用的
populate
的方式不起作用?您是否已绘制了竞争对手和产品的地图。这个链接可能会有帮助,我想你错过了映射。