J'ai une collection avec des documents de ce format:demande imbriquée dans Compliqué MongoDB
{
"_id" : ObjectId("51b1e27e31b1f4fe0700001b"),
"proposals" : [
{
"id" : 17,
"type" : "question",
"fr" : {nothing useful},
"en" : {nothing useful},
"vote_count" : 0,
"validate" : 0,
"username" : "username",
"voters" : [ ],
"creationDate" : ISODate("2013-07-25T08:32:40.328Z")
},
{other proposals of the same type}
]
},
{same format}
Je suis en train de mettre à jour la proposition accompagnée d'une carte d'identité que je reçois, dans le parent droit. J'ai trouvé a request on the Mongo cookbook que j'ai utilisé avec succès, mais sur un format de données moins compliqué, et je ne peux pas le faire fonctionner maintenant. C'est ici.
client.collection('games').update({_id: gameId, 'proposals.id': eventId, 'proposals.voters': {'$ne': user}}, {'$push': {'proposals.voters': user}, '$inc': {'proposals.vote_count': 1}, '$set': {'proposals.validate': 1}});
gameId et eventId sont dans le bon format. Si j'utilise la partie requête de la mise à jour dans find(), j'obtiens le bon jeu. Mais j'ai du mal à voir pourquoi mon document n'est pas mis à jour.
je pense que la valeur est proposals.voter user..thats y son travail non pas à cause de ce code -'proposals.voters ': {' ne de $ ': user}} – sachin
Il était en effet une partie du problème :) – Simon