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
的方式不起作用?您是否已绘制了竞争对手和产品的地图。这个链接可能会有帮助,我想你错过了映射。