Как использовать $ gte и $ lte для дат в mongodb? - PullRequest
0 голосов
/ 03 декабря 2018

У меня есть данные в коллекции.Каждые сохраненные данные были сохранены вместе со временем, указывающим время, когда каждый данные был вставлен в коллекцию.

У меня проблема с формулировкой запроса, который показывает данные, хранящиеся между началом определенного месяца и концом определенного месяца.Пожалуйста, помогите мне с тем, что не так с моим запросом.

Найдите ниже содержание моей коллекции .

Meteor.users.find({}).fetch(); 

(2) [{…}, {…}]
 0: {_id: "ZwT3hcmabytf82wyK", createdAt: Mon Dec 03 2018 11:16:53 GMT+0300 (East Africa Time)}
 1: {_id: "SEXZoHzt3ryKC2a4r", createdAt: Mon Dec 03 2018 11:16:34 GMT+0300 (East Africa Time)}
length: 2

Пожалуйста, обратите внимание, что createdAt предлагает вставитьВремя данных: понедельник, 3 декабря 2018 года и т. д.

А теперь обратите внимание на мой запрос ниже.Эта переменная beginningOfMonth и переменные endOfMonth установлены на ноябрь месяц (beginningOfMonth.setMonth(10, 1) & endOfMonth.setMonth(10, 28)), и все же результаты запроса неверны:

var beginningOfMonth = new Date();
var endOfMonth = new Date();

beginningOfMonth.setMonth(10, 1);
endOfMonth.setMonth(10, 28);  

Meteor.users.find({}, { createdAt: { $gte: beginningOfMonth,  $lt: endOfMonth} }).fetch(); 

[{…}]
  0:{_id: "SEXZoHzt3ryKC2a4r", 
  createdAt: Mon Dec 03 2018 11:16:34 GMT+0300 (East Africa Time), 
  length: 1__proto__: Array(0)

Обратите внимание, что результаты запроса неверны.Похоже, что запрос игнорирует раздел дат createdAt: { $gte: beginningOfMonth, $lt: endOfMonth}.

Пожалуйста, помогите и покажите мне, что я делаю неправильно.

Заранее спасибо

1 Ответ

0 голосов
/ 03 декабря 2018

покажи мне, что я делаю не так.

Вы неправильно используете meteor api.Передайте свои критерии в качестве первого параметра.

Meteor.users.find({ createdAt: { $gte: beginningOfMonth,  $lt: endOfMonth} }).fetch(); 
...