この形式のドキュメントを含むコレクションがあります。
{
"_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}
右の親で、受け取った ID に一致する提案を更新しようとしています。Mongo クックブックでリクエストを見つけましたが、これは正常に使用できましたが、それほど複雑でないデータ形式であり、現在は機能させることができません。ここにあります。
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 と eventId は正しい形式です。find() で更新のクエリ部分を使用すると、適切なゲームが得られます。しかし、ドキュメントが更新されない理由がわかりません。