搜索在mongodb数组下的多个对象上是否存在提供ID

时间:2017-11-08 09:05:23

标签: node.js mongodb

我的数据库具有此值

id: ObjectId(6a00683bac41ce1054774e7d),
currentuserid: "69fc06dbf88c8c15042b4e36",
dataset: Array
 0: Object
   userid: "69fc06dbf88c8c15042b4e37"

 1: Object
   userid: "69fc06dbf88c8c15042b4e38"

2: Object
   userid: "69fc06dbf88c8c15042b4e39"

现在我想查询哪个首先检查“currentuserid”是否存在于数组下。如果Value存在则返回true,否则返回false。我是mongodb的新手。我还阅读了 $ in Operator 。我的问题是

Mydata.find({ dataset: { $in: [{userid: '69fc06dbf88c8c15042b4e36'}] } }, function(req, res){
  if(err){ console.log('Not Matched'); }
  else{ console.log('Matched') }
});

但我无法实现它

1 个答案:

答案 0 :(得分:1)

试试这个:

Mydata.findOne({dataset:{$elemMatch:{userid:'69fc06dbf88c8c15042b4e37'}}},function(err, data){
  if(err){ 
    throw err; 
  } else if(data){ 
    console.log('Matched');
  }else{
    console.log('Not Matched')
  }  
});

对于userid 69fc06dbf88c8c15042b4e36 ,结果数据为null。