2012-04-19 98 views

回答

4

不,你不能那樣做。您不能在mongodb更新中使用表達式。唯一的方法是將此文檔提取到客戶端,在那裏編寫新的字段值併發布準備好的更新語句。

+3

(*這讓我思考:爲什麼會這樣應該不會太難實現簡單的字段引用不,不,我不該」。我沒有想到這一點,我有工作要做。*) – 2012-04-19 12:06:36

2

就像塞爾吉奧提到的那樣,即使問了一個問題,問了2.4.8也不能這樣做。但是,如果你需要做到這一點,你可以使用這個

db.yourCollection.find({}).forEach(function(doc) { 
    doc.F1 = doc.F1 + ", " + doc.F2; 
    delete doc.F2; 
    db.yourCollection.save(doc); 
}); 
+0

其實,我用MongoDB擊中了其他牆,比這更嚴重。最後,我做了一個痛苦的決定,將我的後端從MongoDB遷移到PostgreSQL。 – mark 2013-11-08 12:12:37

+0

你能描述你的問題嗎?其他人從錯誤中學習可能會有幫助:-) – 2013-11-08 13:20:32

+1

**不計數的B-樹**我需要生成滿足各種標準的記錄計數報告。這是一個showstopper。 **唯一的可選字段**我有一些字段如果不爲空則是唯一的,但可能會有許多空值爲空的記錄。 mongo索引這些字段的方式使得不可能在那裏查找帶有空值的記錄 - 你必須使用代理非空值,這是一個真正的難題。 **內存中的狂野** MongoDB是一個真正的面向服務器,它不允許任何其他應用程序一起運行,因爲它的設計非常需要所有內存。 – mark 2013-11-08 15:12:02

相關問題