原子操作で投稿のコメント投票を増やそうとしているので、現在のユーザー名がDownVotersとUpVotersのcomment.Butのリストに存在しない場合は、upvoteのコメントにしようとしています。常にそうとは限りません。私はユーザー名がDownVotersとUpVotersのリストに存在しないことを確認しましたが、依然としてクエリの下は動作しません。下のクエリで何が間違っていますか?MongoDB増分クエリが期待通りに機能しない
var query = Query.And(Query.EQ("Comments._id", commentId), Query.NotIn("Comments.DownVoters", username));
var update = Update.Push("Commments.$.UpVoters",username).Inc("Commments.$.Score", 1);
collection.Update(query, update);
実際、元のコードではスペルミスが発生していますが、サンプルコードには誤りがあります。あなたはそれが正しい質問であると確信していますか?私はこれを1つのQuery.ElemMatch( "Comments"、Query.And( "_ id"、commentId)、Query.NotIn( "DownVoters"、username))に置き換えて動作させていますが、クエリを実行しても予期しない結果が発生する – AnyOne
@AnyOne:うん、それは私のmongodb 2.0での作業。 –
シンプルなシナリオでテストすると、私はあなたに書きます。 – AnyOne