I like Mongo for simple things so I was hoping to use it for something more advanced. And that worked fine until I needed this:
UPDATE tbl SET a = b WHERE c <> 0
The a = b part is what I can’t figure out. I tried mongodb.org, but I can’t find it there. I also looked for WHERE a = b but I can’t find that either.
An alternative is so fetch all rows and than update them individually, but I don’t like that. It has to be simpler.
Thanks.
You want to check the documentation for updating.
http://www.mongodb.org/display/DOCS/Updating
Your code might look like:
db.tbl.update( { c:{$ne:0}}, { $set: { a : b } } );If you need to brush up on advanced queries (e.g. using
$ne), then check here:http://www.mongodb.org/display/DOCS/Advanced+Queries
EDIT:
Apparently you can’t update with data from the same document.
MongoDB: Updating documents using data from the same document
EDIT 2 (solution with map reduce):