J'ai actuellement des documents en MongoDB avec le format suivant:documents Mise à jour dans MongoDB
{
"title": "name of the document",
"tags" : ["tag1", "tag2", "tag3"]
}
Je veux être en mesure de rechercher tous les documents qui ont « terme_recherche » dans leur champ de titre, puis ajouter « terme_recherche » dans le champ de leurs tags. Existe-t-il un moyen facile/propre de le faire sans ré-ingérer tous mes documents ou dois-je simplement écrire un script pour le faire avant de les réinsérer dans mongodb?
j'ai lu la documentation de MongoDB pour db.collection.update() qui avait des exemples comme:
db.people.update(
{ name: "Andy" },
{
name: "Andy",
rating: 1,
score: 1
},
{ upsert: true }
)
Mais cela ne m'a pas aidé car je ne veux pas remplacer complètement mes « tags » champ mais plutôt s'y ajouter.
Quelque chose comme 'db.search.update ({title: /.*search_term.*/}, {push $: { "tags": "search_term"}}, {multi: true}) '. Mais comme il met à jour plusieurs documents, ce ne sera pas une mise à jour atomique. –