0

我试图找到一个让我忙了好几天的问题的答案。我想查找和/或更新 MongDB 集合中的嵌入文档(使用 mongoose)。有可能我知道。你可以这样做:

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

这确实有效。但是,只有当您拥有我不知道的特定 docId 时(嵌入式文档可以是数组的 item(x))。

我的问题是,这可能吗?或者 mongodb 不让我们在不提供 Id 的情况下找到嵌入式文档?

问候,杜威。

4

1 回答 1

0

是的你可以。使用点符号指定您要查找的嵌入文档的属性。假设您为具有以下文档的人员收集了一个集合:

{
  _id:123,
  name:"john",
  address: {
      Street:"any", 
      zip:1234
    }
}

然后你可以通过这样的地址字段找到一个人查询:

db.persons.find("address.zip":1234, ...)

只要考虑它不会只给你嵌入的文档,而是整个文档(在这种情况下是人)

于 2013-06-28T21:04:04.307 回答