作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
0 a = b 部分是我想不通的。我-6ren">
我喜欢 Mongo 做简单的事情,所以我希望用它来做更高级的事情。在我需要这个之前,它工作得很好:
UPDATE tbl SET a = b WHERE c <> 0
a = b
部分是我想不通的。我试过 mongodb.org,但在那里找不到。我也找过 WHERE a = b
但我也找不到。
另一种方法是获取所有行然后单独更新它们,但我不喜欢那样。它必须更简单。
谢谢。
最佳答案
您想检查文档以进行更新。
http://www.mongodb.org/display/DOCS/Updating
您的代码可能如下所示:db.tbl.update({ c:{$ne:0}}, { $set: { a : b } });
如果您需要复习高级查询(例如使用 $ne
),请查看此处:
http://www.mongodb.org/display/DOCS/Advanced+Queries
编辑:
显然,您无法使用同一文档中的数据进行更新。
MongoDB: Updating documents using data from the same document
编辑 2(使用 map reduce 的解决方案):
var c = new Mongo();
var db = c.getDB('db')
var s = db.getCollection('s')
s.drop();
s.save({z:1,q:5});
s.save({z:11,q:55});
db.runCommand({
mapreduce:'s',
map:function(){
var i = this._id; //we will emit with a unique key. _id in this case
this._id=undefined; //strange things happen with merge if you leave the id in
//update your document with access to all fields!
this.z=this.q;
emit(i,this);
},
query:{z:1}, //apply to only certain documents
out:{merge:'s'} //results get merged (overwrite themselves in collection)
});
//now take a look
s.find();
关于mongodb - 如何在 Mongo 中获取 "(WHERE) column = column"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8230677/
我是一名优秀的程序员,十分优秀!