【问题标题】:Querying nested in mongoDB查询嵌套在 mongoDB
【发布时间】:2016-03-09 02:42:45
【问题描述】:

我正在学习 MongoDB 几个星期,但我仍然不知道如何在我的项目中查询嵌套文档。我阅读了 MongoDB-docs 并在 Google 上搜索了很多,但我没有找到很好的解释或教程来解决我的问题。也许你能帮帮我!

我有一个具有以下结构的集合(这里是 JSON 输出):

{
    community: "1",
    date: 1365680790125,
    isIndoor: "true",
    party: {
        teams: [
            {
                isWinner: true,
                players: [
                    {
                        name: "jim",
                        hits: 4,
                        isFinisher: true
                        },
                        {
                            name: "john",
                            hits: 6,
                            isFinisher: false
                        }
                    ]
                    },
                    {
                        isWinner: false,
                        players: [
                            {
                                name: "mike",
                                hits: 6,
                                isFinisher: false
                                },
                                {
                                    name: "moe",
                                    hits: 3,
                                    isFinisher: false
                                }
                            ]
                        }
                    ]
                    },
                    id: "3141be7f9988d872"
                }

现在我想获取“jim”参与的所有记录。

我尝试了这个查询(在咖啡脚本中),但我没有得到任何结果,我认为它非常糟糕......

query = party:
$all:[
    teams: 
        $in: [
            player: [
                name: 'jim'
            ]
        ]
    ]

希望您能帮助我理解查询嵌套文档。 谢谢!

【问题讨论】:

    标签: mongodb mongodb-query


    【解决方案1】:

    使用dot notation 查询嵌入对象的字段:

    query = { 'party.teams.players.name': 'jim' }
    

    【讨论】:

    • 嘿,谢谢你的回答!我在我的数据库(部署平台)上尝试了您的查询,但它不工作..我得到所有记录,而不仅仅是玩家名称为“jim”的记录。然后我在 mongoDB Browser Shell 中尝试了你的查询,它工作了......
    • 好吧...这是部署中的一个错误。现在可以使用了,请参阅:groups.google.com/forum/#!msg/deployd-users/NidQ1sT9u6o/…
    • 我遇到了完全相同的问题,@rojan21,已部署返回任何查询的所有记录,但我找不到有关此错误的信息...
    猜你喜欢
    • 2021-06-20
    • 2015-05-20
    • 1970-01-01
    • 2013-06-22
    • 2021-06-29
    • 2021-02-25
    • 2016-08-16
    • 2021-01-24
    • 2015-11-19
    相关资源
    最近更新 更多