当前位置: 首页 > 知识库问答 >
问题:

如果mongodb中不存在展开字段,如何获取所有结果

叶炜
2023-03-14

我正在尝试从下面的查询收集表格中获取数据:

     db.getCollection('jobs').aggregate(
    {$match :{"slug":"bath-room-designer-for-whole-floor-772000"}},
    {$unwind: "$job_activity"},
    {$lookup: {
            "from":"users",
            "localField":"job_activity.user_id",
            "foreignField":"_id",
            "as": "user_details"
        }
    },
    {$unwind: { path: "$user_details", preserveNullAndEmptyArrays: false } },
    {$group: {
                "_id": "$_id", 
                "Job_detail": {"$push": "$job_activity"},
                "job_activity": {"$push": "$job_activity"},
                "user_details": {"$push": "$user_details"}
            }
    }
    
)

但如果$match的集合中存在datat,则会导致空数据,但此slug的job\u活动不存在

有人能帮忙吗谢谢

共有1个答案

施海
2023-03-14

使用$unwind的preserveNullAndEmptyArrays来保存不存在或为空的文档

所以使用这个$unroll阶段:

{
  $unwind:
    {
      path: "$job_activity",
      preserveNullAndEmptyArrays: true
    }
}
 类似资料:
  • 我在mongoDB中使用聚合方法进行分组,但当我使用时,它返回我用于分组的唯一字段。我试过,但它也不起作用。我还尝试了,它成功了,但结果数据现在的格式不同了。 我需要的响应格式如下: 在我的查询中添加$group之后。响应是这样的,_id的值会发生变化。(而且$group只接受_id,如果我尝试任何其他关键字,它会抛出一个累加器错误。请解释一下。) 我必须删除名称字段中的重复项,而不改变任何结构和

  • 问题内容: 我正在使用nodejs查询mongodb,并希望输出带有自定义字段名称的json。 例如,来自MongoDB的原始json可能 我想将其输出为 我了解MongoDB在其聚合框架中具有$ project运算符,但不确定如何在NodeJS中使用它们。 我正在使用的mongodb nodejs软件包是 对此有任何建议。 问题答案: 如果您使用的是和尚,则可以通过所选集合对象上的访问器来访问基

  • 我是新的MongoDB工作,我需要在以下方面的帮助。

  • 问题内容: 我正在将JSON用户对象发布到我的Golang应用程序中,在其中我将“ req.body”解码为“ User”结构。 和“用户”结构: 虽然我不需要实际验证方面的帮助,但我想知道如何仅在用户名作为JSON对象的一部分包含时验证用户名。目前,如果不包含用户名,则该用户名仍然存在,但为空,即 如何检查是否已将“用户名”作为POSTed对象的一部分? 问题答案: 您可以使用指向字符串的指针:

  • Mongo在upserts上返回WriteResult: 有什么办法可以从pymongo访问这些字段吗?我需要这个,因为更新总是在pymongo中不返回任何内容,我想知道我正在查询的文档是否被修改,或者即使它存在而不进行其他查询。你能告诉我如何做到这一点吗? 我知道以前有人问过这个问题,但那是几年前的事了,我在谷歌上找到的所有东西都没有一个例子。 既然这样,有没有办法从upsert的结果中获取文档

  • 我做了一个ping实验,结果是: 我需要的是收到的数据包数,丢包数,min,avg和max。 我试图使用