繁体   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