Est-il possible d'être sauvage la clé dans une requête? Par exemple, étant donné l'enregistrement suivant, j'aimerais faire une .find({'a.*': 4})
Cela a été discuté ici https://jira.mongodb.org/browse/server-267 Mais On dirait que ce n'est pas résolu.
{
'a': {
'b': [1, 2],
'c': [3, 4]
}
}
Comme demandé, cela n'est pas possible. Le problème du serveur que vous avez lié est toujours sous "Problèmes que nous ne sommes pas sûrs de".
MongoDB a une intelligence entourant l'utilisation des tableaux et je pense que cela fait partie de la complexité entourant une telle caractéristique.
Prenez la requête suivante db.foo.find({ 'a.b' : 4 } )
. Cette requête correspondra aux documents suivants.
{ a: { b: 4 } }
{ a: [ { b: 4 } ] }
Alors, que fait "Wildcard" ici? db.foo.find( { a.* : 4 } )
correspond-il au premier document? Qu'en est-il de la seconde?
De plus, qu'est-ce que cela signifie sémantiquement? Comme vous l'avez décrit, la requête est efficacement "Recherchez des documents où tout domaine dans ce document a une valeur de 4". C'est un peu inhabituel.
Y a-t-il une sémantique spécifique que vous essayez d'atteindre? Peut-être qu'un changement de la structure du document vous obtiendra la requête souhaitée.