在 mongoDB 中查找子字段

发布于 2025-01-08 10:04:58 字数 577 浏览 0 评论 0原文

如何在下面显示的对象中选择子文档作者,而不直接访问它,即 authors[0],以便我得到的结果是 {"_id":" 4f44af6a024342300e000002”,可见:true}

对象:

{
    _id:     "4f44af6a024342300e000001",
    title:   "A book", 
    created: "2012-02-22T14:12:51.305Z"
    authors: [{"_id":"4f44af6a024342300e000002", visible: true}] 
}

我已经能够通过这样做来更新它,但选择它似乎是一个完全不同的故事:

books.update({_id: "4f44af6a024342300e000001",'authors._id': "4f44af6a024342300e000002"}, 
             {$set: {'books.$.visible': true}}, function(err) {
    // ...
});

How would I select the subdocument author, in the below shown object, without directly accessing it, ie authors[0], so that the result that I get back is {"_id":"4f44af6a024342300e000002", visible: true}?

The object:

{
    _id:     "4f44af6a024342300e000001",
    title:   "A book", 
    created: "2012-02-22T14:12:51.305Z"
    authors: [{"_id":"4f44af6a024342300e000002", visible: true}] 
}

I have been able to update it by doing this, but selecting it seems like a completely different story:

books.update({_id: "4f44af6a024342300e000001",'authors._id': "4f44af6a024342300e000002"}, 
             {$set: {'books.$.visible': true}}, function(err) {
    // ...
});

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

疾风者 2025-01-15 10:04:58

目前不可能(请参阅具有额外详细信息的类似问题)

在 MongoDB 中,如何获取嵌入文档字段中的值,但基于不同的值进行查询

在下一个版本中,聚合框架可以朝这个方向迈出了一些步伐,但真正的解决方案是虚拟收藏。

目前(简而言之),仅当您浏览父文档时才使用嵌入文档。

It is currently not possible (see a similar question with extra details)

In MongoDB, how does on get the value in a field for an embedded document, but query based on a different value

In the next version, the aggreation framework could give some step in this direction, but the real solution are the virtual collection.

For the time being (in short), use an embedded document only if you go through the parent.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文