5

mongo shell を使用してコレクションで更新する int 配列があります。実際に更新すると、 double 形式で保存されます。

var  array =[1,2,3];     // int array as all elements are int 
                         // Update query where path is the collection field
 db.doc.update({},{$set : {“path”:array}},{ upsert: true });  

実際には次のように保存されました:

{
  "_id" : ObjectId("529ae0e70971d81eedf5cb3d"),
  "path" : [1.0, 2.0, 3.0]
}

私はmongoの初心者で、mongoシェルで更新クエリを実行する必要があります。自動二重変換を回避する方法。

4

1 に答える 1

8

Mongoshell はデフォルトで数値を float として扱います。したがって、それらを別のものとして扱いたい場合は、これをmongoに明示的に伝えてください。あなたの場合、NumberInt()を使用する必要があります。

そうvar array = [NumberInt("1"), NumberInt("2"), NumberInt("3")];

PSあなたは私の別の答え(似ている)も役に立つと思うかもしれません。

于 2013-12-01T08:59:34.393 に答える