Mongodb 项目在 object 数组内,数组 object
Mongodb project inside array of object with array of object
MongoDB
我有这样的数据:-
[
{
review: [
{
title: "Title1",
professor: [
{
id: "1",
accept: false
},
{
id: "2",
accept: false
}
]
}
]
},
{
review: [
{
title: "Title2",
professor: [
{
id: "3",
accept: false
},
{
id: "2",
accept: false
}
]
}
]
}
]
我想要标题和教授数组以及特定 ID 的过滤器(例如“1”)
我的代码:-
为了匹配我使用下面的代码并且它工作得很好
$匹配
{
review: {
$elemMatch: {
professor: {
$elemMatch: {
id: "1"
}
}
}
}
}
对于我使用以下代码的项目
$项目
{
review: {
title:1,
professor:{
$filter:{
input: "$review.professor", (I try only professor but give null)
as: "professor",
cond: {$eq:["$$professor.id", "1" ]}
}
}
}
}
问题是教授显示数组但数据为空
放松阶段可以帮到你。
db.collection.aggregate([
{
"$match": {
review: {
$elemMatch: {
professor: {
$elemMatch: {
id: "1"
}
}
}
}
}
},
{
"$unwind": "$review"
},
{
$project: {
review: {
title: 1,
professor: {
$filter: {
input: "$review.professor",
as: "professor",
cond: {
$eq: [
"$$professor.id",
"1"
]
}
}
}
}
}
}
])
MongoDB
我有这样的数据:-
[
{
review: [
{
title: "Title1",
professor: [
{
id: "1",
accept: false
},
{
id: "2",
accept: false
}
]
}
]
},
{
review: [
{
title: "Title2",
professor: [
{
id: "3",
accept: false
},
{
id: "2",
accept: false
}
]
}
]
}
]
我想要标题和教授数组以及特定 ID 的过滤器(例如“1”) 我的代码:- 为了匹配我使用下面的代码并且它工作得很好
$匹配
{
review: {
$elemMatch: {
professor: {
$elemMatch: {
id: "1"
}
}
}
}
}
对于我使用以下代码的项目
$项目
{
review: {
title:1,
professor:{
$filter:{
input: "$review.professor", (I try only professor but give null)
as: "professor",
cond: {$eq:["$$professor.id", "1" ]}
}
}
}
}
问题是教授显示数组但数据为空
放松阶段可以帮到你。
db.collection.aggregate([
{
"$match": {
review: {
$elemMatch: {
professor: {
$elemMatch: {
id: "1"
}
}
}
}
}
},
{
"$unwind": "$review"
},
{
$project: {
review: {
title: 1,
professor: {
$filter: {
input: "$review.professor",
as: "professor",
cond: {
$eq: [
"$$professor.id",
"1"
]
}
}
}
}
}
}
])