2012-04-19 178 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

相关问题