MongoJS 节点 findOne 错误地返回无结果
Posted
技术标签:
【中文标题】MongoJS 节点 findOne 错误地返回无结果【英文标题】:MongoJS Node findOne falsely returns no results 【发布时间】:2014-10-12 06:11:29 【问题描述】:使用MongoJS
:https://github.com/mafintosh/mongojs
找到一切
db.users.find(, function(err,users) if (err) 抛出错误; 控制台.log(用户); )返回用户。看起来不错
[ _id: 53f2faa6aed1689e84982b8b, Facebook: 电子邮件:'myname@gmail.com', 名称:“胡安·阿特金斯”, id: '764969936' , __v: 0 ]db.users.findOne( _id: '53f2faa6aed1689e84982b8b' ,功能(错误,用户) if (err) 抛出错误; 控制台.log(用户); );当我尝试通过他的 id 找到该用户时:失败
returns []
我知道数据库中有数据。我试过用不同的键(比如名字)搜索。为什么找不到数据?
【问题讨论】:
【参考方案1】:你必须使用 ObjectId:http://mongodb.github.io/node-mongodb-native/api-bson-generated/objectid.html
db.users.findOne(
_id: new ObjectID('53f2faa6aed1689e84982b8b')
, function(err, user)
if (err) throw err;
console.log(user);
);
【讨论】:
好电话,但我试过了ReferenceError: ObjectID is not defined
@MatthewNolan 然后你需要使用驱动模块中的函数来定义它:var ObjectID = require('mongodb').ObjectID;
我正在使用包装器 mongojs。他们确实建议做类似的事情,但是当我尝试时,它说它没有方法 ObjectJD。 db.users.findOne( _id: mongojs.ObjectID('53f2faa6aed1689e84982b8b') , function(err, user) if (err) throw err; console.log(user); );
嗯,这个API有不同的字母大小写:mongojs.ObjectId('523209c4561c640000000001')以上是关于MongoJS 节点 findOne 错误地返回无结果的主要内容,如果未能解决你的问题,请参考以下文章
Mongoose User.findOne 既不返回错误也不返回成功
MongoDB User.findOne(email:email)
Sails js findOne()返回结果,尽管不满足所有条件