我的数据结构如下:
parent: [
{
val1: 'some data',
val2: 'some data'
},
{
val1: 'some data',
val2: 'some data
}
]
如果我想在"父"数组中的所有嵌套对象中查询属性"val1",是否有一种简洁的方法来做到这一点,即使对象没有键?
编辑:把问题扩展一下。基本上,我希望能够在实际查询中根据val1检查值,而不是获取数据库的每一行,然后用PHP遍历它们。
我不知道数组中对象的数量,所以我不能直接查询它们,即$collection->find(array('parent[0]' => 'some data'))。我希望能够做到相当于"找到所有行,其中属性val1被设置为____包含在'父'数组的对象。
您可以使用$elemMatch来匹配键包含对象数组的文档。
db.myCollection.find({ parent: { $elemMatch: { val1: someValue }}});
这是mongo代码,您必须将其转换为PHP才能通过mongo驱动程序访问。