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" }
}
}
])