mongodb - 左加入 mongodb 不起作用
问题描述
在查询下面,我们用于获取数据,如何将其转换为左连接查询。因此,如果 user_content 表中不存在 id 列,则 count 的值为 0。
db.contents.aggregate([
{ "$lookup" : {
"from" : "user_content" ,
"localField" : "_id" ,
"foreignField" : "contentId" ,
"as" : "user_content"}
} ,
{ "$unwind" : {
"path" : "$user_content" ,
"preserveNullAndEmptyArrays" : true}
} ,
{ "$match" : { "user_content.liked" : true}} ,
{ "$group" : {
"_id" : "$_id" ,
"popularity" : {
"$first" : "$popularity"} ,
"user_content" : { "$push" : "$user_content"}
}
} ,
{ "$project" : {
"popularity" : 1 ,
"count" : { "$size" : [ "$user_content"]}}
} ,
{ "$skip" : 0} ,
{ "$limit" : 1000000}
]);
解决方案
推荐阅读
- javascript - 将 Typescript 枚举从字符串转换为数字(角度)
- json - 在 Ruby 中从具有嵌套 JSON 键值对的类创建新实例/对象
- computer-science - 计算机科学专业的学生应该学习可编程逻辑控制器(PLC)吗?
- c# - 无法将类型“UnityEngine.GameObject”隐式转换为“GameObject”
- angular - 如何使用 SystemJS 处理在运行时加载的模块中的外部依赖项?
- c++ - 为什么标准的“abs”功能比我的快?
- azure - Azure 如何将 CLI 中显示的事件从 IoT 获取到数据库
- sql - line_item.value 不是有效的按表达式分组
- server - Jboss7.2 无法获得 Mojarra 的 CDI 1.1 实用程序
- java - 如何在 Java 中连接用于邮件访问 gmail.com 的证书