Mongoose nodejs发现无法正常工作

时间:2014-09-22 03:54:30

标签: 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);
      });

userid是一个属性,它是创建它的用户的ID。该查找在mongo控制台中也不起作用。

有什么想法吗?我可以通过该位置的实际_id或任何其他值来查找。

1 个答案:

答案 0 :(得分:0)

正如Neil Lunn评论的那样,你的问题几乎肯定是你的架构不正确。一旦你的mongoose模式明确地将userid属性定义为类型mongoose.Schema.Types.ObjectId,mongoose就会在将查询发送到mongodb之前将查询中的字符串值转换为正确的ObjectId实例,从而查询将开始匹配文档,您将看到结果。

{userid: {type: mongoose.Schema.Types.ObjectId, ref: 'Users'}}