【发布时间】:2020-03-07 09:31:59
【问题描述】:
我是 mongodb 的新手,我很困惑为什么我的查找在下面的场景中不起作用
// 查找不工作
[
{
"$match":{
"is_active":{
"$eq":1
}
}
},
{
"$facet":{
"length":[
{
"$count":"total"
}
],
"data":[
{
"$skip":0
},
{
"$limit":10
}
]
}
},
{
"$lookup":{
"from":"offences",
"localField":"offences",
"foreignField":"offence_id",
"as":"offenceSetail"
}
},
{
"$project":{
"offences.is_active":0
}
},
{
"$replaceRoot":{
"newRoot":{
"$mergeObjects":[
{
"$arrayElemAt":[
"$offenceSetail",
0
]
},
"$$ROOT"
]
}
}
},
{
"$project":{
"offenceSetail":0
}
},
{
"$lookup":{
"from":"registers",
"localField":"user_id",
"foreignField":"id",
"as":"sender"
}
},
{
"$project":{
"registers.is_active":0
}
},
{
"$replaceRoot":{
"newRoot":{
"$mergeObjects":[
{
"$arrayElemAt":[
"$sender",
0
]
},
"$$ROOT"
]
}
}
},
{
"$project":{
"sender":0
}
}
],
"options":{
}
}
//查找正在工作
[
{
"$match":{
"is_active":{
"$eq":1
}
}
},
{
"$lookup":{
"from":"offences",
"localField":"offences",
"foreignField":"offence_id",
"as":"offenceSetail"
}
},
{
"$project":{
"offences.is_active":0
}
},
{
"$replaceRoot":{
"newRoot":{
"$mergeObjects":[
{
"$arrayElemAt":[
"$offenceSetail",
0
]
},
"$$ROOT"
]
}
}
},
{
"$project":{
"offenceSetail":0
}
},
{
"$lookup":{
"from":"registers",
"localField":"user_id",
"foreignField":"id",
"as":"sender"
}
},
{
"$project":{
"registers.is_active":0
}
},
{
"$replaceRoot":{
"newRoot":{
"$mergeObjects":[
{
"$arrayElemAt":[
"$sender",
0
]
},
"$$ROOT"
]
}
}
},
{
"$project":{
"sender":0
}
},
{
"$facet":{
"length":[
{
"$count":"total"
}
],
"data":[
{
"$skip":0
},
{
"$limit":10
}
]
}
}
],
"options":{
}
}
请帮助我如何解决它。 谢谢
【问题讨论】:
标签: mongodb aggregate limit lookup skip