【发布时间】:2017-11-08 17:43:21
【问题描述】:
我的数据库有这个值
id: ObjectId(6a00683bac41ce1054774e7d),
currentuserid: "69fc06dbf88c8c15042b4e36",
dataset: Array
0: Object
userid: "69fc06dbf88c8c15042b4e37"
1: Object
userid: "69fc06dbf88c8c15042b4e38"
2: Object
userid: "69fc06dbf88c8c15042b4e39"
现在我想查询哪个首先检查“currentuserid”是否存在于数组下。如果值存在则返回 true 否则返回 false。我是 mongodb 的新手。我还阅读了 $in Operator 。我的查询是
Mydata.find({ dataset: { $in: [{userid: '69fc06dbf88c8c15042b4e36'}] } }, function(req, res){
if(err){ console.log('Not Matched'); }
else{ console.log('Matched') }
});
但我无法实现它
【问题讨论】:
-
.find({ "dataset.userid": '69fc06dbf88c8c15042b4e36' })。$in用于“参数数组”而不是“检查数组”。 MongoDB 不在乎值在数组中。它所需要的只是正确的“路径”。 -
那么先生,我怎样才能做到这一点?
-
使用我实际给你的确切查询。阅读"dot notation" 并了解原因。继续阅读有关查询的所有教程。