@HAbRAhabp

Выборка из массива со схемой в Mongoose?

У меня в 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);
    })

Но у меня это условие не работает.
  • Вопрос задан
  • 478 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы