$使用猫鼬的查找 [英] $lookup using mongoose

查看:80
本文介绍了$使用猫鼬的查找的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有两个清单,例如清单和任务.两种模式如下所示

I have two collections like checklists and tasks. Two schemas will look like below

清单结构看起来像beow

checklist schema will look like beow

{
        "_id": "5b7d0f77e231b6b530b0ee5a",
        "audit_checklist_type": "Weekly"

    },
    {
        "_id": "5b7d3f33e7a57f38084efb09",
        "audit_checklist_type": "Daily"
    }

任务架构如下所示

    { 
        "_id": "5b7d65daf74be318e8378cf9",
        "checklist_id": "5b7d3f33e7a57f38084efb09"
    },
    {
        "_id": "5b7d662df74be318e8378cfb",
        "checklist_id": "5b7d3f33e7a57f38084efb09"
    }

我的查询是

AuditChecklist.aggregate([
{ $match: {
  $and: [
        audit_checklist_type : "Daily"
  ]
  } },
  {
     $lookup: {
        from: 'AuditTask',
        localField: '_id',
        foreignField: 'checklist_id',
        as: 'TaskData'
     }
  },


  ]).exec();

我正在尝试获得类似的输出

I'm trying to get the output like

    {
        "_id": "5b7d3f33e7a57f38084efb09",
        TaskData": [
                    { 
                      "_id": "5b7d65daf74be318e8378cf9",
                      "checklist_id": "5b7d3f33e7a57f38084efb09"
                    },
                    {
                      "_id": "5b7d662df74be318e8378cfb",
                      "checklist_id": "5b7d3f33e7a57f38084efb09"
                    }
                   ]
    }

但是对我来说,结果TaskData输出为空. 任何帮助是极大的赞赏.预先感谢!

But for me resulting TaskData output is empty. Any help is greatly appreciated. Thanks in advance!

推荐答案

Mongooose使数据库名称复数,所以不要使用AuditTask,而应该使用audittasks

Mongooose pluralise the database name So instead of using AuditTask you should use audittasks

OR

您可以先将数据库导入文件中,例如

You can first import the database in your file like

import AuditTask from './AuditTask` 
or 
const AuditTask = require('./AuditTask')

并在您的 $lookup 中使用它> 聚合

{ '$lookup': {
  'from': AuditTask.collection.name,
  'localField': '_id',
  'foreignField': 'checklist_id',
  'as': 'TaskData'
}}

这篇关于$使用猫鼬的查找的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆