Est-il possible de rechercher une colonne dans une collection dans mongodb avec $ dans lequel inclut un tableau d'éléments pour la recherche et également la correspondance caseInsensible de ces éléments dans la colonne?
Répondre
Vous pouvez utiliser $ elemMatch avec la recherche d'expressions régulières, par ex. Cherchons pour « bleu » couleur dans la collection:
db.items.save({ name : 'a toy', colors : ['red', 'BLUE'] })
> ok
db.items.find({ 'colors' :
{ $elemMatch :
{ $regex : 'blue', $options : 'i' }
}
})
>[
{ "name" : "someitem", "_id" : { "$oid" : "4fbb7809cc93742e0d073aef" }, "colors" : [ "red", "BLUE" ] }
]
Une note: cette regex n'utilisera pas d'index. Donc, une telle solution ne convient pas pour les «big data». Une autre solution consiste à prendre en charge le même tableau en minuscules. –
En effet. Merci d'avoir mentionné cela. –
ce n'est pas utile lorsque nous avons besoin de vérifier un tableau de valeur –
Voici mon insensible à la casse recherche (requête) à condition multiple (regex) à partir des données de tableau, je l'ai utilisé $in
mais ne prend pas en charge la recherche insensible à la casse.
Exemple de données
{
name : "...Event A",
tags : ["tag1", "tag2", "tag3", "tag4]
},
{
name : "...Event B",
tags : ["tag3", "tag2"]
},
{
name : "...Event C",
tags : ["tag1", "tag4"]
},
{
name : "...Event D",
tags : ["tag2", "tag4"]
}
Ma requête
db.event.find(
{ $or: //use $and or $or depends on your needs
[
{ tags : {
$elemMatch : { $regex : '^tag1$', $options : 'i' }
}
},
{ tags : {
$elemMatch : { $regex : '^tag3$', $options : 'i' }
}
}
]
})
Utilisez $in avec le match étant insensible à la casse:
Exemple de données:
{
name : "...Event A",
fieldX : "aAa"
},
{
name : "...Event B",
fieldX : "Bab"
},
{
name : "...Event C",
fieldX : "ccC"
},
{
name : "...Event D",
fieldX : "dDd"
}
Et nous voulons docu ments étaient "fieldX" est contenue dans une valeur du tableau (optValues):
var optValues = ['aaa', 'bbb', 'ccc', 'ddd'];
var optRegexp = [];
optValues.forEach(function(opt){
optRegexp.push( new RegExp(opt, "i"));
});
db.collection.find({ fieldX: { $in: optRegexp } });
Cela fonctionne pour $all non plus.
J'espère que cela aide!
p.s .: C'était ma solution pour rechercher par tags dans une application web.
a travaillé pour Ruby besoins ainsi merci .. juste utilisé 'Regexp.new (opt, Regexp :: IGNORECASE)' à la place de 'new RegExp (tag, "je") ' –
Cela fonctionne pour moi parfaitement: De code que nous pouvons créer requête personnalisée comme ceci:
{"first_name":{"$in":[{"$regex":"^serina$","$options":"i"},{"$regex":"^andreW$","$options":"i"}]}}
Cela transformera à suivre en mongo après requête:
db.mycollection.find({"first_name":{"$in":[/^serina$/i, /^andreW$/i]}})
Même chose pour « nin $ ".
- 1. Recherche insensible à la casse dans Mongo
- 2. Domaine de recherche insensible à la casse
- 3. Word VBA: recherche insensible à la casse
- 4. recherche insensible à la casse en php
- 5. Recherche de dictionnaire insensible à la casse?
- 6. Mysql FullText Recherche insensible à la casse
- 7. recherche insensible à la casse de MySQL?
- 8. Recherche de chaîne insensible à la casse
- 9. recherche LDAP insensible à la casse
- 10. Recherche de tableau insensible à la casse
- 11. tableau insensible à la casse recherche
- 12. Insensible à la casse
- 13. insensible à la casse dans searchlogic
- 14. vb.net - recherche sensible à la casse/insensible dans une chaîne
- 15. Recherche insensible à la casse dans les grails
- 16. PHP Zend Lucene Recherchons « accent insensible à la casse » comme dans « insensible à la casse »
- 17. sol insensible à la casse
- 18. Recherche insensible à la casse d'une liste dans R
- 19. Recherche insensible à la casse dans Java DB (Derby)
- 20. Recherche insensible à la casse dans un tableau Excel
- 21. Mysql insensible à la casse de la recherche
- 22. HQL comme opérateur pour la recherche insensible à la casse
- 23. Correspondance insensible à la casse avec Eshell?
- 24. Comparaison insensible à la casse avec jQuery?
- 25. insensible à la casse contient
- 26. La recherche insensible à la casse sur Sybase
- 27. tri insensible à la casse avec peewee
- 28. Requête insensible à la casse
- 29. vim + CtrlP plugin - recherche insensible à la casse?
- 30. insensible à la casse preg_replace_callback
En dehors de l'opérateur $ in, il s'agit d'un doublon de http://stackoverflow.com/questions/1863399/mongodb-is-it-possible-to-make-a-case-insensitive-query –
A droite. Ma question était fondamentalement liée à la correspondance caseinsensitive avec l'opérateur $ in. –