0

これがmongodbで機能する理由を誰か教えてください

db.sub_count.update({"subject":"petad","count":1},{$inc:{"count":1}})

しかし、これはルビーでは機能しません

sub_count.update({"subject" => "petad", "count"=> 1},{$inc => {"count" => 1}})

エラーが発生する場所

/lib/bson/bson_c.rb:24:in `serialize': keys must be strings or symbols (TypeError)
4

1 に答える 1

1

クエリは次のようになります。

sub_count.update({...}, {"$inc" => {"count" => 1}}) # And not :$inc

$incは有効なシンボル (または文字列) ではないため、エラーが表示されます。

余談: これが機能するかどうかはわかりません::"$inc"この方法でシンボルを定義できますが、Ruby ドライバーのドキュメントには、アトミック オペレーターにシンボルを使用できるという記述はありません。わからない。

于 2012-08-06T12:31:36.147 に答える