mongodb - 如何在 MongoDB 中通过深度查询“find()”数据?
问题描述
MongoDB中的数据是这样的:
第一条记录:
{
"_id" : ObjectId("5b309244e138235684843b5d"),
"branch_id": 3,
"group": 2,
"rule_id": 60001,
"details": {
"detail_list": [
{
"count": 36072
},
{
"count": 12035
}
]
}
}
第二条记录:
{
"_id" : ObjectId("5b309244e134567684843b5d"),
"branch_id": 9,
"group": 9,
"rule_id": 60001,
"details": {
"detail_list": [
{
"count": 0
}
]
}
}
我需要获取 who 的记录count > 0
,这意味着我想获取第一条记录并过滤掉第二条记录。我该如何实施?
我试过db.events.find({'details':{'detail_list':{'$in':[{'count':{ '$gt': 0 }}]}}})
了,但它不起作用。我怎样才能让它工作?
解决方案
这是基本的点符号语法:
db.events.find({"details.detail_list.count": {"$gt": 0}})
推荐阅读
- typescript - 如何对使用 vuex-class 的 typescript Vue 组件进行单元测试
- php - 如何在 php 中显示 foreach if/else
- python - ValueError:无法分配“'656937'”:“LeaveTracker.emp_id”必须是“Employee”实例
- git - 尝试恢复到以前的提交后无法推送,Git
- java - 在java mongodb中按数组长度排序
- flutter - Flutter - 保存在 List 中时 MaterialButton 不会改变
- foreach - 从使用 forEach 的异步函数获取返回值
- ios - 计算 UITableView 预期高度
- ios - iOS13 立即检查互联网连接
- laravel - laravel上的图片上传无法在线使用