Bonjour,
J'ai un soucis avec le fonction aggregate de node js, j'aimerais utiliser ce tableau:
{
"_id" : "MRbCLifaZ76jC368Z",
"name" : "blablabla",
"type" : 1,
"users" : [
{
"id" : "RARbvfCv5qpf3tRsP",
"amount" : 3
},
{
"id" : "rGsnFMtWsFD9dZ5vD",
"amount" : 2.0000000000000000
},
....
]
},
....
Et j'aimerais choper le tableau complet et seulement les infos de l'utilsateur de mon choix, du style:
{
"_id" : "MRbCLifaZ76jC368Z",
"name" : "blablabla",
"type" : 1,
"users" : [
{
"id" : "RARbvfCv5qpf3tRsP",
"amount" : 3
},
]
},
....
J'ai donc essayé:
db.find({}, {_id: 0, users: {$elemMatch: {id: "RARbvfCv5qpf3tRsP"}}})
Mais ça ne fonctionne pas, ça retourne les tableaux avec tous les utilisateurs
J'ai cherché un peu et j'ai trouve la fonction aggregate, j'ai donc essayé ça:
db.aggregate([
{$match: {"users.id": "bvR2jA4XorptSKmKn"}},
{$project: {
users: { $filter: {
input: '$users',
as: 'user',
cond: {$eq: ['$$user.id', 'bvR2jA4XorptSKmKn']}
}},
_id: 0
}}
])
Mais ça ne me revois rien du tout
J'aimerais avoir un petit coup de pouce si quelqu'un connais la fonction,
Merci !
Salut,
Aggregate n'est pas ne fonction NodeJS mais de MongoDB.
Sinon, tu as regardé la doc : http://mongodb.github.io/node-mongodb-native/2.0/tutorials/aggregation/ ? Il y a pelle d'exemples, tu devrais pouvoir t'en sortir avec non ? :)
Merci de vos réponses,
Oui c'est une fonction MongoDB, que j'utilise avec meteor qui ne prend pas nativement aggregate en charge, j'utilise donc le package meteorhacks:aggregate pour meteor.
Meteor intègre donc nativement MongoDB, je ne pense pas avoir besoin de mongoose si ?
L'objectif de de l'utilisation de aggregate dans mon cas serais de fluidifier l'application, il est possible qu'il y ait plus de 100 users et j'aimerais donc selectionner directement le bon user avec MongoDB.
Mais mongoose semble ralentir la chose: http://stackoverflow.com/questions/28044938/does-mongoose-still-have-reactivity-issues-with-meteor
As-tu une idée de ce qui pourrais fonctionner avec mongoose ?
ha effectivement, je ne savais pas pour mongoose et meteor, du coup je ne serais pas d'une grande utilité sur ce thread, je n'ai jamais utilisé meteor. Désolé @joxs