Я застрял с этим сценарием дела. Таким образом, человек имеет следующие свойства имя, фамилия, книги [{date, name}] *
, где дата массива книг - строковая дата.
я ищу людей, у которых есть книги у которого есть год в поле даты. Я не уверен, что нужно настроить в моем коде, чтобы сделать эту работу. дата книги хранится в виде строковой даты.
let name = '2019';
let or = [
{ 'firstname': { '$regex': name, '$options': 'i' } },
{ 'lastname': { '$regex': name, '$options': 'i' } },
];
if (!isNaN(name)) {
let date = new Date(name);
or.push({ 'books.date': { "$gt": date, "$lt": date } });
}
Person.aggregate().match(
{
'$or': or
}
).project({
_id: 0,
id: '$_id',
firstname: 1,
lastname: 1,
}).sort({ lastname: 1, firstname: 1 }).exec(function(err, persons) {
// do code.
});
мысли?