首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ObjectId找不到ObjectId

ObjectId找不到ObjectId
EN

Stack Overflow用户
提问于 2015-06-17 01:24:54
回答 2查看 63关注 0票数 0

我的数据库有以下数据:

代码语言:javascript
复制
db.users.find()
{ "_id" : ObjectId("5580c79aa11e7310b2985ab1"), "email" : "an_email", "color" : "", "username" : "", "__v" : 0 }

我使用以下语法使用Mongoose查询它:

代码语言:javascript
复制
User.findById("5580c79aa11e7310b2985ab1", function(error, user) { }

它为错误和用户返回。奇怪的是,Mongoose的调试显示了以下正确的查询:

代码语言:javascript
复制
users.findOne({ _id: ObjectId("5580c79aa11e7310b2985ab1") })

直接查询MongoDB查找预期数据:

代码语言:javascript
复制
db.users.findOne({ _id: new ObjectId("5580c79aa11e7310b2985ab1") })
{
    "_id" : ObjectId("5580c79aa11e7310b2985ab1"),
    "email" : "an_email",
    "color" : "",
    "username" : "",
    "__v" : 0
}

用findById代替findOne,并寻找电子邮件工作。我真的不知道了..。有什么建议吗?

EN

回答 2

Stack Overflow用户

发布于 2015-06-17 01:33:40

findById()需要一个id,而不是一个对象。示例:

代码语言:javascript
复制
Book.findById(req.user.id, function(err, book) {...}

findOne()需要一个对象,因此它可以工作。

票数 0
EN

Stack Overflow用户

发布于 2015-06-17 03:25:11

似乎这是一个错误与猫鼬4.x -我回到了猫鼬3.8,一切都很好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30880860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档