Node.js Mongoose节点发现工作不正常
所以我正在做一个猫鼬查找,我定义了集合等,除了我尝试通过一个值进行查找外,一切都很好Node.js Mongoose节点发现工作不正常,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,所以我正在做一个猫鼬查找,我定义了集合等,除了我尝试通过一个值进行查找外,一切都很好 var searchID = req.user.id; console.log(searchID); Locations.find({userid: '541f69e7fd4c3b07108c92c0'}, function(err, location) { if (err) return console.error(err); console.log(location);
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或任何其他值进行查找。正如Neil Lunn所评论的,您的问题几乎肯定是您的模式不正确。一旦您的mongoose模式将userid属性明确定义为类型mongoose.schema.Types.ObjectId,mongoose将在将其发送到mongodb之前开始将您的字符串值从查询转换到适当的ObjectId实例,因此查询将开始匹配文档,您将看到结果
{userid: {type: mongoose.Schema.Types.ObjectId, ref: 'Users'}}
如何在模式中定义用户ID。它是字符串还是ObjectId?通过mongo外壳它看起来像什么?ObjectId541f69e7fd4c3b07108c92c0?在搜索单个元素时,也可以使用findOne而不是find。