Я хочу использовать .net драйвер mongo, чтобы написать запрос, который будет проверять, является свойство элементов субколлекции равно свойству его владельца. Для наглядности я приведу примерmongo .net драйвер генерирует неправильный запрос
позволяет сказать, что мы имеем @персонала сбора с @детьми и мы хотим найти персонал, которые имеют то же имя, что его ребенок
var query = db.GetCollection("personnels")
.AsQueryable()
.Select(person => person.Children.Any(child => child.FirstName == person.FirstName));
этот запрос будет переведен в
db.getCollection('personnels').aggregate([
{
"$project": {
"__fld0": {
"$anyElementTrue": {
"$map": {
"input": "$Children",
"as": "child",
"in": {
"$eq": [
"$$child.FirstName",
"$$child.FirstName"
]
}
}
}
},
"_id": 0
}
}
])
но там что-то пошло не так
вместо этого "$eq": [ "$$child.FirstName","$$child.FirstName" ],
запрос должен быть переведен на
"$eq": [ "$FirstName","$$child.FirstName" ]
Скажи мне, что я делаю неправильно?
Вспомните, вам понадобится библиотека MongoDriver ... вы можете добавить пакет в свой проект из следующей команды в Shell диспетчера пакетов. Install-Package MongoDB.Driver –