mongodb - 从 MongoDB 查询结果中省略空字段
问题描述
有没有办法从 MongoDB 查询结果的文档(查找或聚合)中省略空字段(例如空字符串或空数组)。
数据库中的文档:
{
"_id" : ObjectId("5dc3fcb388c1c7c5620ed496"),
"name": "Bill",
"emptyString" : "",
"emptyArray" : []
}
输出:
{
"_id" : ObjectId("5dc3fcb388c1c7c5620ed496"),
"name": "Bill"
}
Elasticsearch 的类似问题:Omit null fields from elasticsearch results
解决方案
请使用聚合函数。如果要删除密钥。您通过使用 $project 来使用 $cond。
db.Speed.aggregate( [
{
$project: {
name: 1,
"_id": 1,
"emptyString": {
$cond: {
if: { $eq: [ "", "$emptyString" ] },
then: "$$REMOVE",
else: "$emptyString"
}
},
"emptyArray": {
$cond: {
if: { $eq: [ [], "$emptyArray" ] },
then: "$$REMOVE",
else: "$emptyArray"
}
}
}
}
] )
推荐阅读
- python - 如何明智地分割数据帧长度?
- android - 如何将数据从 recyclerview 中的单击项目传递到 viewmodel 并打开新活动?
- css - 使用 css 翻转图像
- fullcalendar - 显示两个月之间的事件时出错
- python - 不返回管道正则表达式中的第一个匹配项
- rust - How do I conditionally execute code only when an Option is None?
- java - Ubuntu 服务器上的打开文件限制
- mongodb - MongoDB - 创建一个布尔字段来测试某些子字段的存在
- jquery - 旋转表格行的图标点钟
- javascript - 使用javascript中的映射跳过数组中的元素