3
在收集,我保存這樣的文件:蒙戈聚集字符串ISODate
{
"_id" : ObjectId("55e8a5cba21b9e051eb448d1"),
"created_at" : "2015-01-01T00:00:24Z",
...
}
我想改變從字符串created_at的類型,以ISODate得到
{
"_id" : ObjectId("55e8a5cba21b9e051eb448d1"),
"created_at" : ISODate("2015-01-01T00:00:24Z)",
...
}
我發現了一個解決方案:遍歷所有的收集做
db.trial.find().forEach(
function(doc) {
doc.created_at = ISODate(doc.created_at);
db.events_January_watch.save(doc);
}
);
但是,這是非常緩慢和不夠高效,我寧願使用聚合管道+ $出
這是我的嘗試:
db.trial.aggregate(
[
{
$project: {
created_at : "$created_at",
created_at_iso: {$add: ISODate("$created_at_noTime") }
}
},
{
$out: "trialIso"
}
],
{
allowDiskUse: true
}
);
會拋出: è查詢錯誤:無效的ISO日期
我不明白爲什麼,因爲
ISODate("2015-01-01T00:00:24Z")
在mongo shell中完美工作。
(這是因爲,在$ created_at變量尚未聚合管道設置?)