Запрос документов между датами (loopback 3 / mongodb) - PullRequest
0 голосов
/ 24 января 2019

У меня есть документы с такой структурой:

{
        "_id": ObjectId("5c3defbdf58f1f001210169c"),
        "name": "Cristina",
        "created": "ISODate("2019-01-15T14:35:41.865Z")"
        "inscription": {
            "date": "ISODate("2019-01-15T14:35:41.865Z")"
        }
}

Используя loopback sdk в моем угловом приложении, мне нужно запросить документы, используя свойство "inscription.date".

Этот код работает:

this.usersApi.find({"limit":10,"skip":0,"order":"name ASC","where":{"created":{"gte":"2019-01-01T15:03:46.000Z","lte":"2019-01-24T15:03:46.000Z"}}})

Но этот код не возвращает никаких документов (и должен). Мне нужно запросить вложенное свойство внутри объекта incription.

this.usersApi.find({"limit":10,"skip":0,"order":"name ASC","where":{"scheduleOfVisit.startTime":{"gte":"2019-01-01T15:06:56.000Z","lte":"2019-02-28T15:06:56.000Z"}}})

PS: просто игнорируйте значения из дат в фрагменте кода.

Что я делаю не так? Заранее спасибо

1 Ответ

0 голосов
/ 28 января 2019

Из этого билета: https://github.com/strongloop/loopback/issues/517 фильтрация по вложенным свойствам работает только до тех пор, пока вложенные свойства встроены в один и тот же документ.

Если это ваш случай, пытались ли вы использовать AND в своих фильтрах? Как:

    this.usersApi.find({
       "limit":10,
       "skip":0,
       "order":"name ASC",
       "where":{
           and: [
              {"scheduleOfVisit.startTime": {"gte":"2019-01-01T15:06:56.000Z"}},
              {"scheduleOfVisit.startTime": {"lte":"2019-02-28T15:06:56.000Z"}}
            ]
          }
     })
...