mongodb - Mongodb数组与嵌入文档列表的交集
问题描述
我将解释确切的用例
我有一个数组,可以说ratings = [1,2,3,4]
我有一个 MongoDB 记录
{
"_id": "1232123",
"data": [
{
"rating": 1,
"reviewed_on": "datetime"
},
{
"rating": 5,
"reviewed_on": "datetime"
}
]
}
类似上面的东西。所以我想获取那些过滤数据字段中其评级与给定数组匹配的记录的记录,并返回评级与数组中的记录匹配的记录
预期输出:
{"_id": '1232123', "data": [{"rating": 1, "reviewed_on": "datetime"}]}
我能想到的一种方法是获取所有结果,然后在应用程序级别对其进行过滤,但集合很大,所以我假设在数据库级别处理它。
如果问题不清楚,如果您希望我添加任何特定数据,请告诉我。谢谢
解决方案
有很多方法可以做到这一点,我展示了一种使用方法filter
[{
$match: {
_id: "1232123"
}
}, {
$project: {
data: {
$filter: {
input: "$data",
cond: {
$in: ["$$this.rating", [1, 2, 3, 4]]
}
}
}
}
}]
推荐阅读
- git - 如何将 git bash 更改为左对齐
- vb.net - 与 Windows 7 相比,Windows 10 中的性能问题
- c# - Arduino 安全地使用 .net Core api?
- java - 如何更改构建多个文件版本?我的应用程序不适用于此问题
- python - UT8 问题 - 有没有办法在 Python 中将奇怪的字符 ä 转换为正确的德语字符 ä?
- .htaccess - htaccess子域url重写不考虑
- java - 从 EditText 字段获取输入并保存在变量中
- python - 在 odoo 11 中的产品表单邮件线程上发布消息
- javascript - 如何将html字符串转换为dataURI
- javascript - 在 Reactjs 中的 Firebase 中插入数据