У меня есть основной документ, который я совершаю агрегат на поиск в комбинации первых и и фамилий в сочетании:Mongoose агрегатного матча, если в массиве
Моего документ:
{
_id: dmw9294r94
firstName: "John",
lastName: "Smith",
friends: [28enw93hr, 29nwgkn38]
}
Моего совокупная pipline:
User.aggregate([
{
$project: {
"name" : { $concat : [ "$firstName", " ", "$lastName" ] },
"firstName": "$firstName",
"lastName": "$lastName",
"username": "$username",
"friends": "$friends"}
},{
$match: {
"name": {$regex: new RegExp(req.query.query, "i")
}
}}]).exec(function(err, results){
res.json(results);
}
);
Как я могу добавить к этому, чтобы проверить, является ли конкретный идентификатор пользователя существует в этом пользователей friends
массив?
Я попытался следующим, но не везло:
$match: {
"name": {$regex: new RegExp(req.query.query, "i"),
"friends" {$eq: myVarHere}
}
изменить '$ eq' на' $ in' [больше здесь] (https://docs.mongodb.com/manual/reference/operator/query/in/) – profesor79
Пробовал '$ in' тоже, и все еще нет удачи. – Fizzix
Кажется, что '$ in' работает, если проверяется в массиве. Я пытаюсь наоборот, проверяя, содержит ли массив значение. – Fizzix