Je suis désolé si le titre n'est pas descriptif, je ne savais pas comment mieux exprimer mon problème.MongoDB groupe deux champs séparés comme un tableau ou quelque chose avec le même nom de champ
J'ai une base de données de CD qui contient ce type de données:
{
"albumInfo": {
"name": "Angels Fall First",
"type": "LP",
"genre": ["symphonic metal", "power metal", "folk metal"],
"publicationYear": 1997,
"tags":["tag1", "tag2", "tag3"],
"stars": 4
},
"artist": {
"name":"Nightwish",
"members": [
{
"name": "Tarja Turunen",
"instruments": ["lead vocals"]
},
{
"name": "Tuomas Holopainen",
"instruments": ["piano", "synthesizers", "keyboards", "vocals"]
},
{
"name": "Erno Vuorinen",
"instruments": ["guitar"]
},
{
"name": "Jukka Nevalainen",
"instruments": ["drums", "percussion"]
}
]
},
"additionalArtists": [
{
"name": "Esa Lehtinen",
"instruments": ["flutes"]
}
]
Et je veux avoir additionalArtists.name et artist.members.name dans un tableau ou au moins pour qu'ils aient même nom de domaine (comme "musician.name") afin que je puisse chercher des musiciens distincts de la base de données.
Ma base de données n'est pas très bien formatée, je suppose, mais ce genre de db bizarre devrait le faire pour l'instant.
Est-ce que aggregate $ projette ma solution?
Quel est votre filtre de requête? Voulez-vous un nom distinct dans chaque document ou dans plusieurs documents? – Veeram
Je suis nouveau avec le vocabulaire non-sql donc je ne suis pas tout à fait sûr mais j'ai DB qui a beaucoup de CD: s comme celui que j'ai posté ci-dessus. Et je veux faire une requête qui me donne tous les musiciens qui sont dans la base de données. Et les musiciens sont stockés à deux endroits comme dans l'exemple de données ("additionalArtists.name" et "artist.members.name") Ai-je répondu à la question? Je pense que c'est sur plusieurs documents. – Dosentti
Merci pour l'information. Permettez-moi d'ajouter une réponse et nous pouvons travailler à partir de là. Quelle est ta version mongo? – Veeram