Vous essayez de générer une requête agrégée qui me permettrait de classer les codes zip et de renvoyer le nombre de chaque groupe.Regrouper les codes postaux dans de nouvelles catégories s'il contient une valeur dans le tableau
Le docuement regarde en partie comme
{
"_id" : ObjectId("value"),
"updatedAt" : ISODate("value"),
"zip" : "11209",
"state" : "NY",
"city" : "New York",
}
Je voudrais groupe en comparant le champ « zip » à un tableau avec un nombre n de valeurs mutuellement exclusives
east_ny_zipcodes = [11209, 11210, 11211, ...]
lower_ny_zipcodes = [11212, 11213, 11214, ...]
idéalement retour quelque chose comme
{
lower_ny: 1200,
upper_ny: 1500,
east_ny: 2000
}
Vous pouvez utiliser '$ group' avec' $ cond' et comparer des tableaux pour chaque catégorie dans son propre cond. Quelque chose comme 'db.collection_name.aggregate ({ "groupe $": { "_id": null, "east_ny": { "somme $": { "$ cond": [{ « $ en « : [ "zip $", " east_ny_zipcodes" ] }, 1, ] }} }} )'. Vous pouvez ajouter l'étape '$ match' avec' $ or' pour limiter les codes postaux à traiter dans le pipeline. – Veeram