mongoimport による 10000 個のドキュメント インポートがあり、_id は長さ 6 のランダムな文字列です。
{_id:"xxxxxx","u":0,"t":0}
mongoimport はデータ型を指定できないため、"123456" のような文字列は int 型としてインポートされました。だから私は手動でオリジナルを削除し、それらを次のように再挿入します
db.xxx.insert({_id:"123456","u":0,"t":0})
0 のデフォルトの型は Double であるため、次のように int に変更します。
db.xxx.update({},{$set:{u:NumberInt(0)}},false,true)
WriteResult({ "nMatched" : 100000, "nUpserted" : 0, "nModified" : 99994 })
6 つのドキュメントの変更に失敗したようです。次の方法で変更を検証します。
> db.code.find({u:{$type:1}})
{ "_id" : "263798", "t" : 4, "u" : 0 }
{ "_id" : "375249", "t" : 7, "u" : 0 }
{ "_id" : "659472", "t" : 3, "u" : 0 }
{ "_id" : "672534", "t" : 3, "u" : 0 }
{ "_id" : "784392", "t" : 0, "u" : 0 }
{ "_id" : "875631", "t" : 0, "u" : 0 }
更新は、mongoimport によってインポートされたドキュメントのみを変更しますが、手動で挿入したドキュメントはそのままにします。なぜですか?