查询MongoDB中的嵌套数组;PHP


Querying nested arrays in MongoDB & PHP

我使用MongoDB与PHP自己的驱动程序,我已经保存了主文档下的多个数组。结构如下:

{
 _id: 234234234324,
 accounts: {
    0: {
        enabled: 1,
        name: 'asdf'
    },
    1: {
        enabled: 0,
        name: 'gfsd'
    }
}

帐户由用户删除和添加,因此我无法控制数组键。我需要以某种方式获得所有已启用的帐户:1。我尝试array("accounts.enabled"=>1),但它不起作用。和建议?

在你的模式帐户不是嵌套数组,它实际上是复杂的对象,因为这个array("accounts.enabled"=>1)将不工作(你实际上只能检查特定的元素-> array("accounts.0.enabled"=>1))。

问题的解决方案可以是重新设计模式,如下所示:

{
 _id: 234234234324,
 accounts: [
    {
        enabled: 1,
        name: 'asdf',
        id: 0
    },
    {
        enabled: 0,
        name: 'gfsd',
        id: 1
    }]
}

如果你做了以上的修改,你的查询将会工作