Я конвертирую Mongodb в Cosmos DB без какого-либо изменения кода. Я использую spring-boot-starter-data-mon go api и org.springframework.data.mongodb.core.query.Query
, чтобы выбрать только несколько полей в документе, а не все поля.
При выборе _id,address.primary.email,address.primary.secondary
из emp1
он работает нормально, если я использую тот же запрос, выберите emp2
, это не удастся, потому что emp2
не имеет дополнительного адреса.
Как решить эту проблему?
Запрос: {"_id": {"$ in": ["Emp2"]}}, Поля: {"_id": 1 , "address.primary.email": 1, "address.secondary.email": 1} ,, сортировка: {}
mongoTemplate.find (запрос, EmployeeColl.class);
[
{
"_id": "Emp1",
"name": "Name1",
"address": {
"primary": {
"email": "eamp1@gmail.com"
},
"secondary": {
"email": "emp1sec@gmail.com"
}
}
},
{
"_id": "Emp2",
"name": "Name2",
"address": {
"primary": {
"email": "emp2@gmail.com"
}
}
}
]
Exception:
UncategorizedMongoDbException: Query failed with error code 1 and error message
org.springframework.data.mongodb.core.MongoExceptionTranslator.translateExceptionIfPossible(MongoExceptionTranslator.java:132)
at org.springframework.data.mongodb.core.MongoTemplate.potentiallyConvertRuntimeException(MongoTemplate.java:2607)
at org.springframework.data.mongodb.core.MongoTemplate.executeFindMultiInternal(MongoTemplate.java:2474)