Il est un exemple sur les requêtes modèle/mise à jour des données de vote à Mongo:
http://www.mongodb.org/display/DOCS/MongoDB+Data+Modeling+and+Rails#MongoDBDataModelingandRails-AtomicUpdatesmodélisation des données Mongo/mises à jour pour le vote (haut et bas)
Cependant, je besoin à la fois haut et en bas voix (en gros, une personne peut soit voter ou voter vers le bas). En outre, je veux que l'électeur puisse changer d'avis et changer de vote en faveur de la rétrogradation ou inversement (la liste des électeurs et le nombre total ne correspondent donc pas). Quel serait le meilleur modèle de données et l'appel correspondant de mise à jour?
Quel serait le meilleur modèle de données et appel de mise à jour correspondant?
Je vois deux possibilités, soit faire un
'votes': [{ 'user_id' : ... , 'vote': ±1 }]
ou
'upvoters': [...], 'downvoters': [...]
Mais je ne peux pas faire une requête de mise à jour pour la première encore, et deuxième ressemble un peu bizarre (mais ce n'est peut-être que moi).
Si je me souviens bien, l'exemple donné dans la documentation MongoDB permettra -1 (non seulement plus 1) ... avez-vous essayé? Ou avez-vous besoin de connaître le nombre exact de votes négatifs? –
Excellent commentaire. Oui, la raison en est que je veux laisser la personne changer d'avis et lancer un downvote où elle a déjà lancé un upvote, et l'exemple de mongodb ne le permet pas. Ajouté ceci au texte de question. –