您可以为此使用$abs运算符。首先让我们创建一个包含文档的集合
> db.absoluteValueDemo.insert({"Value":98}); WriteResult({ "nInserted" : 1 }) > db.absoluteValueDemo.insert({"Value":-100}); WriteResult({ "nInserted" : 1 }) > db.absoluteValueDemo.insert({"Value":0}); WriteResult({ "nInserted" : 1 }) > db.absoluteValueDemo.insert({"Value":-9999990}); WriteResult({ "nInserted" : 1 })
以下是在find()
方法的帮助下显示集合中所有文档的查询:
> db.absoluteValueDemo.find().pretty();
这将产生以下输出
{ "_id" : ObjectId("5ca271f56304881c5ce84b9a"), "Value" : 98 } { "_id" : ObjectId("5ca271fa6304881c5ce84b9b"), "Value" : -100 } { "_id" : ObjectId("5ca271fe6304881c5ce84b9c"), "Value" : 0 } { "_id" : ObjectId("5ca2720f6304881c5ce84b9d"), "Value" : -9999990 }
以下是使用MongoDB聚合框架获取绝对值的查询
> db.absoluteValueDemo.aggregate({ $project: { AbsoluteValue: { $abs: '$Value' } }});
这将产生以下输出
{ "_id" : ObjectId("5ca271f56304881c5ce84b9a"), "AbsoluteValue" : 98 } { "_id" : ObjectId("5ca271fa6304881c5ce84b9b"), "AbsoluteValue" : 100 } { "_id" : ObjectId("5ca271fe6304881c5ce84b9c"), "AbsoluteValue" : 0 } { "_id" : ObjectId("5ca2720f6304881c5ce84b9d"), "AbsoluteValue" : 9999990 }