[英]query in google datastore as $elemMatch in mongo
我想过滤满足所有条件的数组中的元素。
就像我有一个数组
测试:[{“ organizationName”:“ strge”,“ familyName”:“ raju”},{“ organizationName”:“ sand”,“ familyName”:“ sand”}]
我需要查询来过滤同一元素中的所有条件的查询。我发现它是在mongo中使用$ elemMatch完成的,但未在Google数据存储中找到类似的查询。
您可以将Cloud Datastore中数组值的相等过滤器视为CONTAINS
过滤器。
因此,如果您有一个具有members
属性的GROUP
实体:
members: [
{ firstName: 'Alice', lastName: 'Smith' }
{ firstName: 'Bob' , lastName: 'Miller' }
]
您可以运行:
SELECT * FROM Group WHERE
members.firstName = 'Alice'
AND members.lastName = 'Smith'
AND members.firstName = 'Bob'
AND members.lastName = 'Miller'
它将返回以上结果。
但是,此查询不会检查firstName
和lastName
值是否出现在相同的member
值中。 因此,此查询还将返回如下所示的Group
实体:
members: [
{ firstName: 'Alice', lastName: 'Jones' }
{ firstName: 'Bob' , lastName: 'Jones' }
{ firstName: 'Chris', lastName: 'Miller' }
{ firstName: 'Denise', lastName: 'Smith' }
]
为避免这种情况,您必须先运行查询,然后再进行客户端过滤。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.