Я использую nodeJS и mongoose / mongoDB для создания API.Рассмотрим следующую модель для универсальной модели (Gmodel):
{
name: "teleni",
type: "person",
data: mixed
}
Поле данных в этом документе является смешанным типом, поэтому оно может быть любым, но в большинстве случаев я намерен сделать его поддокументом / объектом.случаи (в зависимости от значения поля типа).Если бы я хотел найти все документы, относящиеся к типу лица, я бы выполнил следующий код:
Gmodel.find({type: "person"}, callbackFunction)
Теперь рассмотрим другой экземпляр модели:
{
name: "teleni",
type: "person",
data: {
data_type: "event",
date: "Jan 30 2019"
}
}
Моя проблема заключается в том, чтоЯ хочу использовать mongoose, чтобы найти все документы, где поле данных - это объект / документ, где поле data_type - это «событие».Я пробовал следующий код:
Gmodel.find({data: {data_type: "event"}}, callbackFunction)
Однако, когда я выполняю этот код, ничего не возвращается, потому что find ищет документы, где поле данных в точности равно {data_type: "event"}
.Итак, как мне использовать find для извлечения документов, чьи вложенные документы (смешанного типа) частично соответствуют критериям, аналогично тому, как find работает в полях верхнего уровня.