无密钥嵌套对象

时间:2015-10-20 20:16:25

标签: php mongodb

我的数据结构如下:

parent: [
    {
        val1: 'some data',
        val2: 'some data'
    },
    {
        val1: 'some data',
        val2: 'some data
    }
]

如果我想查询该物业' val1'在父母的所有嵌套对象中'数组,即使对象没有密钥,还有一种简洁的方法吗?

编辑:稍微扩展一下这个问题。

基本上,我希望能够在实际查询中检查val1的值,而不是获取数据库的每一行,然后使用PHP循环遍历它们。

我不知道数组中的对象数量,所以我无法直接查询它们,即$ collection-> find(array(' parent [0]&#39 ; =>'一些数据'))。我希望能够做到等同于"找到所有具有对象的行,其中属性val1设置为____,包含在父母'阵列。

1 个答案:

答案 0 :(得分:0)

您可以使用$elemMatch来匹配包含对象数组的文档。

db.myCollection.find({ parent: { $elemMatch: { val1: someValue }}});

这是mongo代码,您必须将其转换为PHP才能通过mongo驱动程序访问。