ReactiveMongo: элемент проекции не возвращается с помощью реактивного запроса монго
У меня есть следующий документ mongodb:
{
"_id" : ObjectId("5592c0e6ea16e552ac90e169"),
-----------
"location" : {
"_id" : ObjectId("5592c17fc3ad8cbffa0e9778"),
"companyFieldId" : ObjectId("559140f1ea16e552ac90e058"),
"name" : "Location",
"alias" : "Points",
"locations" : [
{
"_id" : ObjectId("5592c17fc3ad8cbffa0e9779"),
"country" : "India",
"state" : "Punjab",
"city" : "Moga",
"zip" : "142001",
"custom" : false
},
{
"_id" : ObjectId("5592c17fc3ad8cbffa0e977a"),
"country" : "India da address",
"custom" : true
}
],
"mandatory" : true,
"allowForGroups" : false
},
-----------
}
Когда я запрашиваю документ, используя следующий запрос:
companyCollection.find($doc("_id" $eq companyId, "location._id" $eq locationId)).projection($doc("location" -> 1, "_id" -> 1)).cursor[LocationField].headOption;
Вернется только company id
, Но когда я изменяю значение проекции на projection($doc("location" -> 1, "_id" -> 0))
вернуть пустой документ. Я использую Query DSL для написания запросов.
ОБНОВИТЬ
Когда я создаю запрос, как:
companyCollection.find($doc("_id" $eq companyId, "department._id" $eq departmentId), $doc("department" -> 1, "_id" -> 0)).cursor[Company].headOption
с этим моим возвращаемым значением является карта с Company
и со своей собственностью LocationField
используя проекцию, остальные поля игнорируются mongodb. Но мое основное требование только возврат location
значение внутреннего документа и карта с LocationField
, Когда я запускаю запрос в консоли dong Монго, как:
db.companies.find({"_id": ObjectId('5592c0e6ea16e552ac90e169'), "location._id": ObjectId('5592c17fc3ad8cbffa0e9778')}, {"location": 1, "_id": 0})
Поведение в результате совпадает с моим реактивным запросом монго. Возможно ли с помощью mongo db вернуть только внутренний документ вместо полной структуры документа?