繁体   English   中英

在Google数据存储区中查询为$ elem在mongo中匹配

[英]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'

它将返回以上结果。

但是,此查询不会检查firstNamelastName值是否出现在相同的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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM