У меня в Mongoose есть схема вида:
var schema = new Schema({
// ...
views: [new Schema({
userId: String,
expired: Date
})]
});
exports.Order = mongoose.model("Order", schema);
views
- это subschema. Мне нужно выбрать строки из основной схемы, которые ЛИБО не содержат views с таким userId, ЛИБО содержат, но
views.expired
должен истечь. Что то похожее на систему блокировки определенных пользователей со сроком. Как я пробую сделать выборку:
Order.find({
$and: [
// other conditions
{ $or: [{"views.userId": { $ne: userId } }, { $and: [
{ "views.userId": userId },
{ "views.expired": { $gte: new Date()}}
]}]}
]
}, function (err, data) {
if (err) console.log(err);
console.log(data);
})
Но у меня это условие не работает.