Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Orm Node.js中的Mongodb/Mongoose。按嵌套文档的id查找_Orm_Mongodb_Node.js_Express_Mongoose - Fatal编程技术网

Orm Node.js中的Mongodb/Mongoose。按嵌套文档的id查找

Orm Node.js中的Mongodb/Mongoose。按嵌套文档的id查找,orm,mongodb,node.js,express,mongoose,Orm,Mongodb,Node.js,Express,Mongoose,由于某些原因,当我按嵌套文档的id搜索时,找不到文档。我可以很容易地执行其他发现,因此这两项工作: User.findOne({"_id" : some_id}, function(err,user){} User.findOne({"arrayOfNestedDocs.value":someValue}, function(err,user){} 但按嵌套文档的id查找不起作用: User.findOne({"arrayOfNestedDocs._id" : some_id}, functi

由于某些原因,当我按嵌套文档的id搜索时,找不到文档。我可以很容易地执行其他发现,因此这两项工作:

User.findOne({"_id" : some_id}, function(err,user){}
User.findOne({"arrayOfNestedDocs.value":someValue}, function(err,user){}
但按嵌套文档的id查找不起作用:

User.findOne({"arrayOfNestedDocs._id" : some_id}, function(err,user){}

我可以在mongo shell中执行搜索,但不能通过mongoose。任何想法都会有帮助

如果您试图查找嵌入式文档,则语法为:

User.findOne({_id: id}, function(err, user) {
    var embeddedDoc = user.embeddedDocs.id('embeddedDocId');
});

我在

中添加了它作为一个问题,您的嵌套文档是否有一个_id属性,并且是ObjectId类型的某个_id?是的,它们有一个_id,因此我可以在shell中执行搜索。我想这可能是
某个_id
类型的问题。应该是mongoId,许多人在不同的驾驶人中面临相同的问题。例如,它们传递的是字符串而不是mongoid。否则它听起来像个虫子。另外,你可以给我们看一下你的文档结构吗?我开始认为这是一个bug,搜索将在mongoose的旧版本中工作,但不是1.4。我相信结构是好的。我想我是想看看现在是否有另外一种方法被推荐来执行这些搜索。但是如果顶层文档id未知,那么我们只能使用embeddedDocId怎么办。