查询MongoDB中的嵌套数组& PHP

时间:2011-11-22 11:16:58

标签: php mongodb

我正在使用MongoDB和PHP自己的驱动程序,我在主文档下保存了多个数组。结构看起来像这样:

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

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

1 个答案:

答案 0 :(得分:4)

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

您的问题的解决方案可以按照以下方式重新设计:

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

如果您进行以上更改,您的查询将有效。

相关问题