j'ai ces deux types de structures dans ma collection:tableaux multiples délasser et structure différente dans le document
{
_id: "date1",
users: [{"user": "123", ...}, {"user": "456", ...}]
}
et
{
_id: "date2",
points: [{"point": "1234", ...}, {"point": "5678", ...}]
}
je dois faire Agrégé, qui me renvoie une liste de ces documents et seulement le point spécifique ou l'information de l'utilisateur et avec sauter et limiter. Quelque chose comme:
[
{_id: "date1", user: {"user": "123", ...}},
{_id: "date2", point: {"point": "1234", ...}},
]
J'ai utilisé, je suis nouveau à Mongo, pouvez-vous me recommander?
collection.aggregate([
{"$unwind": "$users"},
{"$unwind": "$points"},
{"$match": {"$or": [
{'users.user': an_user},
{'points.point': a_point}]}},
{"$sort": {"_id": -1}},
{"$skip": 10},
{"$limit": 10}
])
Dans quel but voulez-vous vous détendre? Essayez-vous de filtrer le contenu dans les tableaux? La condition OR ne rend pas vraiment vos intentions si claires. Mis à part le problème d'un produit cartésien, on ne sait pas quel résultat vous attendez. Alors peut-être développer votre échantillon pour démontrer ce que le résultat devrait être. –
J'ai besoin d'un résultat qui me renvoie une liste dans une plage de '_id: date', avec les informations d'un utilisateur spécifique ou d'un point spécifique selon si la clé' point' ou 'user' est dans ce document. Peu importe la structure du résultat. Peut-être que se détendre n'est pas la solution, pourrait être un groupe. Comme je l'ai dit, je suis nouveau à Mongo. –
Combien de documents y a-t-il dans la collection? Est-il nécessaire d'aller chercher en une seule opération? –