Я просмотрел другие сообщения, и никто, кажется, не обращается к тому, что я пытаюсь сделать. Мне нужно создать запрос, который будет искать все записи, имеющие тип_имя в массиве, и принадлежать текущему зарегистрированному пользователю. Вот что у меня есть:Как найти документы, используя несколько условий?
Запрос:
app.post('/photos', function(req, res) {
Photos
.find({
'type_id': { $in: req.body.type_ids },
$and : {'groups.users': { $in: req.user._id }}
})
.select('name size')
.exec(function(err, data) {
return res.json(data);
});
});
Схема:
var photoSchema = mongoose.Schema({
name : String,
size : String,
type_id : String,
created : {
type: Date,
default: Date.now
},
groups : {
users : [],
other : []
}
});
Единственное, что я могу добраться до работы следующий запрос:
app.post('/photos', function(req, res) {
Photos
.find({'type_id': { $in: req.body.type_ids }})
.select('name size')
.exec(function(err, data) {
return res.json(data);
});
});
Но, очевидно, это не сработает, потому что я хочу только те результаты для конкретного пользователя. Строка $and : {'groups.users': { $in: req.user._id }}
явно не работает, но я не уверен, как ее исправить. Есть идеи?
Спасибо, но он все еще не работает. Я попробовал '' 'groups.users': {$ in: req.user._id} '' и '' 'groups.users': req.user._id'', но не работал. Если я удалю эту строку из запроса, я получаю данные обратно, это просто не фильтруется 'user._id''. –
Чтобы устранить сомнения относительно того, что вы пытаетесь сделать, не могли бы вы предоставить некоторые фактические примеры документов, которые выполняются и не соответствуют конкретному примеру того типа запроса, который вы хотите сделать? – wdberkeley
@ChrisPaterson Похоже, что переменная 'req.user._id' - это не то, что вы ожидаете от нее. –