Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database Couchbase对象的对象查询_Database_Couchbase_N1ql_Nosql - Fatal编程技术网

Database Couchbase对象的对象查询

Database Couchbase对象的对象查询,database,couchbase,n1ql,nosql,Database,Couchbase,N1ql,Nosql,在couchbase数据库中,我们有一个包含相对较大对象的bucket。这些物体里面还有其他物体,比如说人。这应该是一个数组,但是出于某种原因,我们不得不将其创建为对象的对象,它看起来是这样的: { "companyName": "company name", "companyid": "11111-GUID-11111", "people": { "22222-GUID-22222": { "peopleid": "22222-G

在couchbase数据库中,我们有一个包含相对较大对象的bucket。这些物体里面还有其他物体,比如说人。这应该是一个数组,但是出于某种原因,我们不得不将其创建为对象的对象,它看起来是这样的:

{
    "companyName": "company name",
    "companyid": "11111-GUID-11111",
    "people": {
        "22222-GUID-22222": {
            "peopleid": "22222-GUID-22222",
            "name": "name1"
        },
        "33333-GUID-33333": {
            "peopleid": "33333-GUID-33333",
            "name": "name2"
        },
        "44444-GUID-44444": {
            "peopleid": "44444-GUID-44444",
            "name": "name3"
        }
    }
}
它还具有具有类似结构的子对象

我的问题是,我如何能够生成一个查询,该查询能够响应所有“company”对象,其中包含名为“name1”的人员(例如)


正如我所说,人对象也有子对象,比如宠物,带有ID。我是否可以进行一个可以搜索该深度的查询?

从默认值中选择d.*作为d,其中OBJECT_值(d.people)中的任何v都满足v.name=“name1”END


在对象对(d.people)中的任何v满足v.
val
.name=“name1”结束时,从默认值中选择d.*d作为d

经过测试,它工作正常,非常感谢!在我投票并接受你的回答之前,你能告诉我如何做一个类似的查询,它只会对那些有宠物的公司的名字为“name1”的公司做出响应吗?我找到了一种方法:
SELECT d.*从默认的d中,其中OBJECT_值中的任何p(d.people)满足OBJECT_值中的任何pet(p.pets)满足pet.name=“name1”END。再次感谢。如果需要匹配任何对象名称(任何级别),您可以在中使用。如果d.people中的任何v都满足v.name=“name1”END,则从默认值中选择d.*作为d;这也是非常有用的。非常感谢你!谢谢,@vsr。有没有办法只找回匹配的宠物?事实上,我对匹配的人物对象更感兴趣。没有得到公司的支持。再次感谢