我使用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
}]
}
如果你做了以上的修改,你的查询将会工作