所以我正在做一个猫鼬发现,我已经定义了集合等,除了我尝试按值进行查找外,它都可以正常工作。
var searchID = req.user.id;
console.log(searchID);
Locations.find({userid: '541f69e7fd4c3b07108c92c0'}, function(err, location) {
if (err) return console.error(err);
console.log(location);
});
userid是一个属性,它是创建它的用户的ID。该查找在mongo控制台中也不起作用。
有什么想法吗?我可以通过该位置的实际_id或任何其他值来查找。
答案 0 :(得分:0)
正如Neil Lunn评论的那样,你的问题几乎肯定是你的架构不正确。一旦你的mongoose模式明确地将userid
属性定义为类型mongoose.Schema.Types.ObjectId
,mongoose就会在将查询发送到mongodb之前将查询中的字符串值转换为正确的ObjectId
实例,从而查询将开始匹配文档,您将看到结果。
{userid: {type: mongoose.Schema.Types.ObjectId, ref: 'Users'}}