我的数据结构如下:
parent: [
{
val1: 'some data',
val2: 'some data'
},
{
val1: 'some data',
val2: 'some data
}
]
如果我想查询该物业' val1'在父母的所有嵌套对象中'数组,即使对象没有密钥,还有一种简洁的方法吗?
编辑:稍微扩展一下这个问题。
基本上,我希望能够在实际查询中检查val1的值,而不是获取数据库的每一行,然后使用PHP循环遍历它们。
我不知道数组中的对象数量,所以我无法直接查询它们,即$ collection-> find(array(' parent [0]&#39 ; =>'一些数据'))。我希望能够做到等同于"找到所有具有对象的行,其中属性val1设置为____,包含在父母'阵列。
答案 0 :(得分:0)
您可以使用$elemMatch来匹配包含对象数组的文档。
db.myCollection.find({ parent: { $elemMatch: { val1: someValue }}});
这是mongo代码,您必须将其转换为PHP才能通过mongo驱动程序访问。