Я написал запрос поиска, который работает, запрос поиска возвращает записи, в которых существуют имя и уровень
db.docs.find( { $and: [{name:{$exists:true}},{level:{ $exists:true}} ] },{_id:0, name:1}).sort({"name":1})
и теперь хочу объединить его с чем-то вроде приведенного ниже кода, который также работает, но нуждается в необходимо объединить с вышеприведенным, чтобы получить правильные данные
db.docs.aggregate(
[
{
$project:
{
_id:0,
name: 1,
Honours:
{
$cond: { if: { $gte: [ "$level", 8 ] }, then: "True", else: "False" }
}
}
}
]
)
Запрос поиска возвращает записи, в которых существуют имя и уровень, но мне нужно улучшить результат с помощью нового столбца с именем Honors, показывающего True of False в зависимости от является ли уровень gte (больше или равен 8)
Так что я в основном пытаюсь объединить вышеупомянутый фильтр поиска с функцией $ cond (которую я нашел и изменил пример здесь: $ cond )
Я попробовал приведенные ниже и несколько других перестановок, чтобы попытаться найти и отсортировать с помощью $ project и $ cond aggregate, но он вернул ошибки. Я просто очень плохо знаком с тем, как создать синтаксис mongodb, чтобы все это сочеталось. Может кто-нибудь помочь, пожалуйста?
db.docs.aggregate(
[{{ $and: [{name:{$exists:true}},{level:{ $exists:true}} ] },{_id:0, name:1}).sort({"name":1}
{
$project:
{
_id:0,
name: 1,
Honours:
{
$cond: { if: { $gte: [ "$level", 8 ] }, then: "True", else: "False" }
}
}
}
}
]
)