MongoDBでは、「date」というフィールドのある文書があり、それは配列になっています。その後文字列の日付をMongoDBのISO日付に変更しますか?
{
"_id" : ObjectId("587627a2125a730f78a20859"),
"data" : [
{
"Number" : "359983007479839",
"date" : "2016-02-10T21:56:33.000Z"
}
]
私は、このスクリプトを実行します。
db.dummy.find().forEach(function(doc){
doc.mongodbdate = ISODate(doc.mongodbdate);
db.dummy.save(doc);
})
し、その出力の下に私を与えるが、私もこれを試してみました
{
"_id" : ObjectId("588724ba2746360c04a51e4b"),
"data" : [
{
"Number" : "359983007479839",
"mongodbdate" : "2016-02-12T18:01:06.000Z"
}
],
"mongodbdate" : ISODate("2017-01-24T15:26:24.537+05:30")
}
:
var bulk = db.dummy.initializeUnorderedBulkOp(),
count = 0;
db.dummy.find().forEach(function(doc) {
bulk.find({ "_id": doc._id }).updateOne({
"$set": { "mongodbdate": ISODate(doc.mongodbdate) }
})
count++;
if (count % 1000 == 0) {
// Execute per 1000 operations and re-init
bulk.execute();
bulk = db.dummy.initializeUnorderedBulkOp();
}
})
its throws Error: "message" : "invalid ISO date"
を私はISO date.Iにその文字列の日付を変換するには、いくつかのコードを変更しましたが、そのは、ISO形式で新しい日付を追加することが、私はしたいですすでに使用可能なものを更新するには、新しいものを挿入する必要はありません。 私はstackoverflowにも1つの解決策がありますが、それは配列のためだと思う私の文書の新しいフィールドを追加している、私は私の既存のものを更新したい。続き
どうすればいいですか? –
MongoDBで直接更新する必要がありますか?次に、プログラミング言語をmongodbに接続するインタフェースが必要です。 Pythonでは、それは 'pymongo'です(他の人が私を信じています、pymongoは他者よりも簡単に学ぶことができます)。 – x899
私はこのスクリプトを使用しました。しかし、これは、配列の外にある新しいフィールドを作成しています...更新していない... db.dummy.find()。forEach(function(doc){ doc.mongodbdate = new Date(data.mongodbdate) ; db.dummy.save(doc); }) –