mongodb - 如果父对象为空,则 Cosmos DB 查询失败
问题描述
我正在将 Mongodb 转换为 Cosmos DB,而无需更改任何代码。我使用 spring-boot-starter-data-mongo api 并org.springframework.data.mongodb.core.query.Query
仅选择文档中的几个字段而不是所有字段。
_id,address.primary.email,address.primary.secondary
从中选择emp1
工作正常,如果我使用相同的查询 select emp2
,它会失败,因为emp2
没有辅助地址。
如何解决这个问题?
查询:{“_id”:{“$in”:[“Emp2”]}},字段:{“_id”:1,“address.primary.email”:1,“address.secondary.email”:1} ,, 种类: { }
mongoTemplate.find(query,EmployeeCol.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)
解决方案
推荐阅读
- java - 在 Liferay 6.2 中,保存按钮在站点设置中不起作用
- django - Django Rest 框架:Pickle 响应
- php - 尝试将 webhook 响应存储到我的数据库中
- sql - 如果客户在接下来的 3 个月内购买了 sql 助手,则输入 1
- android - ADB pm grant 不适用于 Android 10 上的某些权限
- c# - 如何从自定义 Nuget 包中确定要使用的平台配置?
- machine-learning - Logistic回归中的多重共线性检查(插管测试)?
- ibm-mq - 更改频道名称
- ios - 如何安全地从 Xcodes 编译源中删除文件?
- c# - Telegram Bot 停止并在 mscorlib.dll 中发生“System.AggregateException”类型的未处理异常