Mongodb Mongo Db展开+;组
我已尝试了后续查询:Mongodb Mongo Db展开+;组,mongodb,Mongodb,我已尝试了后续查询: db.getCollection("chatrooms").aggregate( // Pipeline [ // Stage 1 { $lookup: // Equality Match { from: 'userProfiles', localField: 'participants.0.userId', foreignField: '
db.getCollection("chatrooms").aggregate(
// Pipeline
[
// Stage 1
{
$lookup: // Equality Match
{
from: 'userProfiles',
localField: 'participants.0.userId',
foreignField: 'userId',
as: 'utente'
}
// Uncorrelated Subqueries
// (supported as of MongoDB 3.6)
// {
// from: "<collection to join>",
// let: { <var_1>: <expression>, …, <var_n>: <expression> },
// pipeline: [ <pipeline to execute on the collection to join> ],
// as: "<output array field>"
// }
},
// Stage 2
{
$unwind: {
path: "$utente",
}
},
// Stage 3
{
$addFields: {
"azienda": "$utente.businessName",
}
},
// Stage 4
{
$group: {
_id : null,
count: { $sum: 1 }
}
},
],
db.getCollection(“聊天室”).aggregate(
//管道
[
//第一阶段
{
$lookup://相等匹配
{
from:'userProfiles',
localField:'participants.0.userId',
foreignField:'userId',
如:'中尉'
}
//不相关子查询
//(从MongoDB 3.6开始支持)
// {
//从:“,
//让:{:,…,:},
//管道:[],
//as:“
// }
},
//第二阶段
{
$REWIND:{
路径:“$utente”,
}
},
//第三阶段
{
$addFields:{
“azienda”:“$utente.businessName”,
}
},
//第四阶段
{
$group:{
_id:null,
计数:{$sum:1}
}
},
],
在addfields阶段,我有结果2文档,但在group阶段,我总是有0个结果,有人知道为什么我在最后一个阶段没有结果(在前一个阶段有结果)你能发布这两个集合吗!!这是三个阶段的结果:_id:60ab7f49d9f27d965c41476e有区别:假参与者:数组创建日期:2021-05-24T10:26:17.587+00:00更新日期:2021-05-24T10:26:17.587+00:00管道的阶段4没有问题;它应该返回1个带有计数的文档。除了使用
$group
+$sum
计数之外,还可以使用$count
阶段(结果相同)。对MongoDB v3.6有效。