簡體   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