惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
GbyAI
GbyAI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 三生石上(FineUI控件)
美团技术团队
Last Week in AI
Last Week in AI
WordPress大学
WordPress大学
L
LangChain Blog
雷峰网
雷峰网
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 叶小钗
Engineering at Meta
Engineering at Meta
腾讯CDC
Recent Announcements
Recent Announcements
The Register - Security
The Register - Security
有赞技术团队
有赞技术团队
Blog — PlanetScale
Blog — PlanetScale
博客园 - Franky
博客园 - 司徒正美
The Cloudflare Blog
Google DeepMind News
Google DeepMind News
T
Tailwind CSS Blog
C
Check Point Blog
小众软件
小众软件
V
Visual Studio Blog
V
V2EX
F
Full Disclosure
J
Java Code Geeks
MongoDB | Blog
MongoDB | Blog
罗磊的独立博客
人人都是产品经理
人人都是产品经理
量子位
Apple Machine Learning Research
Apple Machine Learning Research
F
Fortinet All Blogs
Microsoft Security Blog
Microsoft Security Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 【当耐特】
博客园_首页
Y
Y Combinator Blog
N
Netflix TechBlog - Medium
酷 壳 – CoolShell
酷 壳 – CoolShell
Stack Overflow Blog
Stack Overflow Blog
Recorded Future
Recorded Future
G
Google Developers Blog
Vercel News
Vercel News
大猫的无限游戏
大猫的无限游戏
Microsoft Azure Blog
Microsoft Azure Blog
U
Unit 42
爱范儿
爱范儿
Jina AI
Jina AI

MongoDB

求助,谁会用那个 mongoDB 的云数据库啊,帮看看咋链接报错呢 - V2EX mongodb 自托管到底支持 vector 搜索吗 大佬们,急需请教,遇到大困难 - V2EX 有啥好用的 mongodb GUI 工具 - V2EX 大佬们,大问题请教,内存占满 - V2EX mongodump 出来的文件为什么比数据库本身大了一倍多?数据库大小只有 100GB, dump 出来的 bson 有 242GB,硬盘放不下了,怎么不占用硬盘空间备份数据到其它机器? - V2EX 想请教一下, mongoDB 是否适合海量数据存储 - V2EX MongoDB 如何优化到跟 MySQL 资源占用一样低? - V2EX 新人小白求教 - V2EX mongodb 新手虚心请教大佬们 - V2EX 请教大家一个 mongodb 大数据量下, count 优化的问题 - V2EX MongoDB 的 findOneAndUpdate 并发问题 - V2EX 求助大佬们: Mongo DB Compass 加 socks5 代理连不上 MongoDB Atlas 上的库 - V2EX 关于远程 mongodb 数据同步到本地 Elasticsearch 问题 - V2EX mongodb 日志文件巨大,怎么读取,以及怎么限制其大小? 江湖救急,冷备数据恢复 - V2EX 感觉 Mongodb 的权限管理有点复杂 - V2EX MongoDB 有什么比较新的入门教程吗? - V2EX 有没有觉得用 typescript 写 mongoose 好蛋疼 - V2EX mongodb 生产环境创建索引 - V2EX 刚用 mongodb,请教下类似 MySQL 的「select ... for update」大伙都是如何替代? - V2EX 求一个好用的 MongoDB 管理工具~ - V2EX mongodb 只剩硬盘上的数据库文件要怎么恢复 - V2EX 各位 javaer MongoDB 用的什么 orm - V2EX mongodb lookup 使用请教 - V2EX monodb 内存占满,进程退出 - V2EX 12 月 14 日上海新天地朗廷酒店,我司赞助的 MongoDB Day 上海站,欢迎大家联系我注册报名。 - V2EX mongoose 外键查询问题 - V2EX MongDB upsert 时新增的字段不能更新值 - V2EX 大佬们,请问如何通过 go.mongodb.org 的驱动允许集合分片啊,他的驱动不支持运行脚本吗? - V2EX nodejs mongodb - V2EX MongoDB 什么量子数据库 - V2EX 求助, Failed with error 'aborted',是什么情况,应该怎么处理 - V2EX 请教大佬: mongo4.2 多个事务修改 document 报 WriteConflict - V2EX mongodb 数据全量加载到 redis,怎样提升速度? - V2EX 请教一个查询统计的语句 - V2EX Mongodb 怎样对 key 进行模糊查询? - V2EX 请教 mongo 连接问题 - V2EX Mongodb 字符串转 ObjectId - V2EX 问个增量更新的办法。 - V2EX 求助, MongoDB 中查找如何做到完全匹配 - V2EX MongoDB 事务 + Promise.all(),会有部分数据操作失败。这是为啥? - V2EX mongodb 中的递归查找子目录 - V2EX 求助 启动服务后执行程序就自动退出 - V2EX 列了 MongoDB 的 Golang 使用,注入攻击防范需要注意的点,请大家看看还有其他需要注意的没? - V2EX 求助帖 - V2EX mongodb 查询问题 - V2EX mongodb 连接加上 auth 认证后,数据库切换会花掉 0.5 秒 ,多个数据库间切换时会很慢。
用不存在的字段的子字段 lookup 时,分组后该字段值会变成空对象,如何变成 null - V2EX
imldy · 2023-02-17 · via MongoDB

场景是为评论寻找子评论 评论文档

{
  "_id": {
    "$oid": "63ed9bd52b031a24fdbe1e1e"
  }
  "creatorId": {
    "$oid": "63e51a155ca7f018d6038967"
  },
  "text": "评论内容 0216"
}

子评论文档:

{
  "_id": {
    "$oid": "63ee03eb98b24f5603c044da"
  },
  "linkCommentId": {
    "$oid": "63ed9bd52b031a24fdbe1e1e"
  },
  "replyToUserId": {
    "$oid": "63e51a155ca7f018d6038967"
  },
  "creatorId": {
    "$oid": "63e51a155ca7f018d6038967"
  },
  "text": "测试子评论 0216-2"
}

代码

[
  {
    $match:
      {
        _id: ObjectId("63ed9bd52b031a24fdbe1e1e"),
      },
  },
  { // 从子评论集合中找到评论的子评论(假设该评论不存在子评论,replies 为空数组)
    $lookup:
      {
        from: "dynamicChildComment",
        localField: "_id",
        foreignField: "linkCommentId",
        as: "replies",
      },
  },
  { // 展开子评论(得到一条没有 replies 的文档)
    $unwind:
      {
        path: "$replies",
        preserveNullAndEmptyArrays: true,
      },
  },
  { // 1 、给子评论寻找发布者,执行后:replies 对象只存在一个属性 creator ,值为空数组
    $lookup:
      {
        from: "users",
        localField: "replies.creatorId",
        foreignField: "_id",
        as: "replies.creator",
      },
  },
  { // 2 、执行后:replies 对象没有属性
    $unwind:
      {
        path: "$replies.creator",
        preserveNullAndEmptyArrays: true,
      },
  },
  { // 3 、执行后:replies 对象只存在一个属性 replyToUser ,值为空数组
    $lookup:
      {
        from: "users",
        localField: "replies.replyToUserId",
        foreignField: "_id",
        as: "replies.replyToUser",
      },
  },
  { // 4 、执行后:replies 对象没有属性
    $unwind:
      {
        path: "$replies.replyToUser",
        preserveNullAndEmptyArrays: true,
      },
  },
  {
    $group:
      {
        _id: "_id",
        replies: {
          $push: "$replies", // 到这里,就出现了一个 replies 数组,有一个空对象作为第 0 个元素
        },
      },
  },
]

我该如何将 replies 数组变成空数组