Comment puis-je mettre à jour/insérer un Objet dans la Liste interne dans Mongodb?
Blog {
id:"001"
title:"This is a test blog",
content:"...."
comments:[{title:"comment1",content:".."},{title:"comment2",content:"..."}]
}
commentaires est une liste interne au blog.
Mais comment puis-je récupérer uniquement comment1?
et Comment puis-je insérer/mettre à jour un nouveau commentaire dans le blog?si j'obtiens le blog et insérer/mettre à jour le contenu dans la Liste des commentaires,puis enregistrez le plein de blog,comment résoudre simultanées isuue?
Grâce.
OriginalL'auteur L.J.W | 2011-01-03
Vous devez vous connecter pour publier un commentaire.
Pour aller chercher le document incorporé vous avez besoin de récupérer le document maître et de recherche sur ses commentaires document incorporé le document que vous voulez. Il n'y a pas moyen de faire mieux dans MongoDB en fait.
À insérer/mettre à jour dans un document incorporé, vous pouvez utiliser le
$push
et$set
système de requête à faire.vous avez raison c'est pourquoi il n'est pas une bonne conception de l'utilisation document incorporé avec un document de croître dans le temps. Vous avez besoin d'attendre la collection virtuelle de le faire dans le futur
OriginalL'auteur shingara
Pour insérer un commentaire, utilisez
$push
:Pour mettre à jour un commentaire, utilisez
$set
:2 est l'indice du commentaire donné. L'utilisation de guillemet est nécessaire.
J'ai un doute avec cette solution, si 2 threads différents, appel db.blogs.mise à jour à la même heure (race condition), Ne mongo va assurer les 2 éléments de la liste enregistrée dans le document?
OriginalL'auteur Mark
Pour mettre à jour un Commentaire spécifique par titre.
Vous pouvez également mettre à jour le contenu du commentaire, c'est avec le titre.
En cas de problème alors me répondre.
OriginalL'auteur jatin