J'essaie d'obtenir uniquement l'objet pasien_docs dans le résultat de la recherche, j'utilise match, lookup et addfield mais je veux obtenir le résultat afficher uniquement le tableau de pasien_docs:
Pasien.aggregate(
[
{
$match: {
_id: ObjectId(id)
}
},
{
$lookup:
{
from: "data",
localField: "_id",
foreignField: "idPasien",
as: "pasien_docs"
}
},
{ '$addFields': {
'pasien_docs': {
'$map': {
'input': '$pasien_docs',
'in': {
'ecg': '$$this.ecg',
'date': '$$this.date'
}
}
}
}}
]
)
et le résultat est:
"data": [
{
"_id": "5e08a79fe34fa20a302f659f",
"username": "rizkarahayus",
"nama": "Rizka Rahayu",
"__v": 0,
"pasien_docs": [
{
"ecg": null,
"date": "2020-01-21T05:22:01.901Z"
},
{
"ecg": 1.03,
"date": "2020-01-21T05:22:02.979Z"
},
mais je veux que le résultat ne montre que le tableau de pasien_docs comme ceci:
"pasien_docs": [
{
"ecg": null,
"date": "2020-01-21T05:22:01.901Z"
},
{
"ecg": 1.03,
"date": "2020-01-21T05:22:02.979Z"
},
Pouvez-vous m'aider? Je vous remercie...
Vous pouvez simplement utiliser $project
et spécifier l'inclusion du pasien_docs
champ calculé, la suppression du _id
champ comme:
Pasien.aggregate(
[
{
$match: {...}
},
{
$lookup: {...}
},
{
'$addFields': {...}
},
{
$project: { _id: 0, pasien_docs: 1 }
}
]
)
Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.
En cas d'infraction, veuillez [email protected] Supprimer.
laisse moi dire quelques mots