我一直在這裏搞了一會兒,沒有找到關於如何完成此任務的示例和解釋。MongoDB更新:根據現有字段生成新字段,或更新到位
我有一個文件集合,每個文件都有一個日期/時間字段。理想情況下,我需要爲每個文檔生成一個新的字段,其值基於添加了常數因子的日期/時間字段的時間。
或者,只需簡單更新值就足夠了。
我一直無法弄清楚如何在mongo shell更新語句中引用當前文檔。
這是愚蠢的嗎?我應該放棄並編寫一個應用程序來完成這個看似簡單的操作嗎?
謝謝!
我一直在這裏搞了一會兒,沒有找到關於如何完成此任務的示例和解釋。MongoDB更新:根據現有字段生成新字段,或更新到位
我有一個文件集合,每個文件都有一個日期/時間字段。理想情況下,我需要爲每個文檔生成一個新的字段,其值基於添加了常數因子的日期/時間字段的時間。
或者,只需簡單更新值就足夠了。
我一直無法弄清楚如何在mongo shell更新語句中引用當前文檔。
這是愚蠢的嗎?我應該放棄並編寫一個應用程序來完成這個看似簡單的操作嗎?
謝謝!
有時候簡單地寫出這個問題會帶來一個解決方案。有點哈克,絕對不可思議,但似乎工作:
db.actuals.find().forEach(
function(d) {
var dt = d.date;
var ndt = new Date(d.date).setHours(dt.getHours() - 8);
db.actuals.update({_id: d._id}, { $set: { local: new Date(ndt) } });
}
)
它不是愚蠢和任何人誰是做任何SQL編程它的那些你只是假設的事情之一是存在的,你目瞪口呆地獲悉,它不是「T。我也一直在尋找這一點,並空了。您可以在shell中執行的操作是手動轉換腳本。使用db.collection.find()來獲取候選人,並使用它們遍歷它們。這是我們的備份集如何在這樣做之前大屁股遷移
db.config.find().forEach(function(x) { db.config_20131119_bak.insert(x) });
你不要在功能上可能會有所不同的,但它的工作非常適合我。