Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何获取值为​;在mongo的不同领域_Node.js_Mongodb_Mongoose_Aggregate Functions_Nosql Aggregation - Fatal编程技术网

Node.js 如何获取值为​;在mongo的不同领域

Node.js 如何获取值为​;在mongo的不同领域,node.js,mongodb,mongoose,aggregate-functions,nosql-aggregation,Node.js,Mongodb,Mongoose,Aggregate Functions,Nosql Aggregation,我有一些文件如下 { _id: 1, lender_id: 10, borrower_id: 20, message: 'Message from lender' }, { _id: 2, lender_id: 20, borrower_id: 10, message: 'Response to lender' } { _id: 3, lender_id: 10, borrower_id:

我有一些文件如下

  {
    _id: 1,
    lender_id: 10,
    borrower_id: 20,
    message: 'Message from lender'
  },
  {
    _id: 2,
    lender_id: 20,
    borrower_id: 10,
    message: 'Response to lender'
  }
  {
    _id: 3,
    lender_id: 10,
    borrower_id: 30,
    message: 'Message to other user'
  }
我想得到在这种特殊情况下,当贷方id字段或借方id等于10时的文档计数

我试着这样做:

    chats = await Chat.aggregate([
        {
            $match: { $or: [
                {lender_id: 10},
                {borrower_id: 10}
            ]}
        },
        {
            $group: {
                _id: null,
                differentChats: {$sum: 1}
            }
        },
    ])

    // Response: [ { _id: null, differentChats: 3 } ] --- must be 2
如何获得独特聊天的总数。
thx用于读取。

我们需要创建一组独特的
贷方id
借方id
集合,如下所示(通过更改顺序)。在最后一个阶段,我们采用
大小

chats = await Chat.aggregate([
  {
    $match: {
      $or: [ {lender_id: 10}, {borrower_id: 10} ]
    }
  },
  {
    $group: {
      _id: null,
      differentChats: {
        $addToSet: {
          $cond: [
            { $gt: ["$lender_id", "$borrower_id"]},
            [ "$lender_id", "$borrower_id" ],
            [ "$borrower_id", "$lender_id" ]
          ]
        }
      }
    }
  },
  {
    $project: {
      differentChats: { $size: "$differentChats" }
    }
  }
])

我们需要创建一套独特的
贷方id
借方id
集合,如下所示(通过更改顺序)。在最后一个阶段,我们采用
大小

chats = await Chat.aggregate([
  {
    $match: {
      $or: [ {lender_id: 10}, {borrower_id: 10} ]
    }
  },
  {
    $group: {
      _id: null,
      differentChats: {
        $addToSet: {
          $cond: [
            { $gt: ["$lender_id", "$borrower_id"]},
            [ "$lender_id", "$borrower_id" ],
            [ "$borrower_id", "$lender_id" ]
          ]
        }
      }
    }
  },
  {
    $project: {
      differentChats: { $size: "$differentChats" }
    }
  }
])