我正在使用MongoDB和PHP自己的驱动程序,我在主文档下保存了多个数组。结构看起来像这样:
{
_id: 234234234324,
accounts: {
0: {
enabled: 1,
name: 'asdf'
},
1: {
enabled: 0,
name: 'gfsd'
}
}
用户删除并添加了帐户,因此我无法控制数组密钥。我需要以某种方式获取已启用的所有帐户:1。我尝试了数组(“accounts.enabled”=> 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
}]
}
如果您进行以上更改,您的查询将有效。