2015-11-04 33 views
1

我有一個Model,Pet,屬性爲favoriteFoods如何搜索「陣列」類型的模型屬性

// Pet.js 
module.exports = { 

    attributes: { 
     name: { 
      type: 'string' 
     }, 
     favoriteFoods: { 
      type: 'array' 
     } 
    } 
}; 

favoriteFoods存儲爲array,因爲它是用戶的自由文本字段。

現在,有沒有辦法根據array的值find

我確實對從URL查詢感興趣,下面的例子可以工作,但它並不理想。

/pet?where={"favoriteFoods":{"contains":"Best Food"}}

有沒有更好的辦法?字符串比較似乎不是最好的解決方案。

例如,如果一個示例條目具有favoriteFoods: ["Best Food", "Best Treats"],另一個示例條目具有favoriteFoods: ["Second Best Food", "Best Treats"],則上面的query將返回2個結果。我們的目標是與數組中的一個條目完全匹配的結果,所以這不會給我們預期的結果。

+0

您應該更新您的問題,關注您當前的解決方案,以及您希望從解決方案中獲得最佳答案。 – Meeker

+0

當您在HTTP請求中發送「where」條件時,這是正常使用情況。 – ghaiklor

+0

@Meeker - 增加了一個例子。讓我知道你是否想要更多。 – gotmikhail

回答

0

最簡單的解決方案雖然可能不是最高性能,但只需簡單地封裝在引號中。下面會發現"Best Food",而不是"Second Best Food"

/pet?where={"favoriteFoods":{"contains":"\"Best Food\""}}

子文檔查詢在水線下一個版本中實現。根據您的適配器,您的其他選項將是nativequery

在這種情況下,您的適配器將發揮最大的不同。