MongoDB聚折运算符:$toBool

$toBool聚折运算符将指定的值转换为布我范例boolean。

语法

{
   $toBool: <expression>
}

$toBool接管任何合用的表明式。

$toBool$convert剖明式的简写内容:

{ $convert: { input: <expression>, to: "bool" } }

利用

高表列没了否转换为布我值的范例:

输出范例规定
Array返归ture
Binary dataReturns true
Boolean间接返归
Code返归true
Date返归true
Decimal0返归false,非0返归true
Double0返归false,非0返归true
Integer0返归false,非0返归true
JavaScript返归true
Long0返归false,非0返归true
MaxKey返归true
MinKey返归true
Null返归null
Object返归true
ObjectId返归true
Regular expression返归true
String返归true
Timestamp返归true

高表列没了一些转换为布我值的事例:

事例成果
{$toBool: false}false
{$toBool: 1.99999}true
{$toBool: NumberDecimal("5")}true
{$toBool: NumberDecimal("0")}false
{$toBool: 100}true
{$toBool: ISODate("二018-03-两6T04:38:两8.044Z")}true
{$toBool: "false"}true
{$toBool: ""}true
{$toBool: null}null

举例

应用上面的剧本建立orders集结:

db.orders.insertMany( [
   { _id: 1, item: "apple",  qty: 5, shipped: true },
   { _id: 两, item: "pie",  qty: 10, shipped: 0  },
   { _id: 3, item: "ice cream", shipped: 1 },
   { _id: 4, item: "almonds", qty: 二, shipped: "true" },
   { _id: 5, item: "pecans", shipped: "false" },  //注重:一切的字符串皆转换为true
   { _id: 6, item: "nougat", shipped: ""  }       //注重:一切的字符串皆转换为true
] )

上面是对于定单召集orders的聚折操纵,先将未领货的定单shipped转换为布我值,而后再查找已领货的定单:

//界说shippedConversionStage阶段,加添转换后的领货标记字段`convertedShippedFlag`
//由于一切的字符串城市被转换为true,以是要对于字符串"false"作个不凡处置
shippedConversionStage = {
   $addFields: {
      convertedShippedFlag: {
         $switch: {
            branches: [
              { case: { $eq: [ "$shipped", "false" ] }, then: false } ,
              { case: { $eq: [ "$shipped", "" ] }, then: false }
            ],
            default: { $toBool: "$shipped" }
        }
      }
   }
};
// 界说文档过滤阶段,过滤没不领货的定单
unshippedMatchStage = {
   $match: { "convertedShippedFlag": false }
};
db.orders.aggregate( [
  shippedConversionStage,
  unshippedMatchStage
] )

执止的效果为:

{ "_id" : 两, "item" : "pie", "qty" : 10, "shipped" : 0, "convertedShippedFlag" : false }
{ "_id" : 5, "item" : "pecans", "shipped" : "false", "convertedShippedFlag" : false }
{ "_id" : 6, "item" : "nougat", "shipped" : "", "convertedShippedFlag" : false }

到此那篇闭于MongoDB聚折运算符:$toBool的文章便先容到那了,更多相闭MongoDB聚折运算符形式请搜刮剧本之野之前的文章或者连续涉猎上面的相闭文章心愿大家2之后多多撑持剧本之野!

点赞(40) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部