Ho la seguente query, per trovare i tag
in un campo nome e sostituirli con uno spazio vuoto - per sbarazzarcene.
Le stringhe di nome possono avere da 1 a molti tag
, ad es.Trova e sostituisci stringhe nei documenti in modo efficiente
AA aa
AA aa
AA aa
AA aa
AA AA aaaaaaaa
... così.
db.tests.find({'name':/.* .*/}).forEach(function(test){
test.name = test.name.replace(" ","");
db.tests.save(test);
});
db.tests.find({'name':/.* .*/}).forEach(function(test){
test.name = test.name.replace(" ","");
db.tests.save(test);
});
db.tests.find({'name':/.* .*/}).forEach(function(test){
test.name = test.name.replace(" ","");
db.tests.save(test);
});
Oltre ripetere lo stesso modello di query, c'è una soluzione migliore per gestire questo scenario, in termini di minore duplicazione e prestazioni superiori?
Non è necessario eseguire una query $ set di aggiornamento: è sufficiente eseguire db.tests.save (doc); – alexcasalboni