簡體   English   中英

查找其子文檔字段與給定標准與貓鼬部分匹配的文檔

[英]Find Documents whose Subdocument Fields partially match given Criteria with Mongoose

我已經使用nodeJS和mongoose / mongoDB來構建API。 對於通用模型(Gmodel),請考慮以下模型:

{
   name: "teleni",
   type: "person",
   data: mixed
}

本文檔中的數據字段是混合類型,因此可以是任何類型,但是我打算在大多數情況下將其作為子文檔/對象(取決於類型字段的值)。 如果我想查找所有類型為person的文檔,我將執行以下代碼:

Gmodel.find({type: "person"}, callbackFunction)

現在考慮模型的另一個實例:

{
   name: "teleni",
   type: "person",
   data: {
      data_type: "event",
      date: "Jan 30 2019"
   }
}

我的問題是,我想使用貓鼬在數據字段為“事件”的對象/文檔中查找所有文檔。 我嘗試了以下代碼:

Gmodel.find({data: {data_type: "event"}}, callbackFunction)

但是,當我執行此代碼時,什么都不會返回,因為find正在尋找數據字段正好為{data_type: "event"} Documents。 因此,如何使用find檢索其子文檔(混合類型)部分符合條件的文檔,類似於find在頂級字段上的工作方式。

您可以使用點語法data.data_type在子文檔中指定一個字段。 這樣,它將僅基於此字段進行匹配,而不是原始代碼中的整個子文檔。

Gmodel.find({data.data_type: "event"}, callbackFunction)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM