解决mongodb TypeError: Cannot read property 'XXX' of null 问题

本文详细解析了MongoDB中$exists运算符的使用方法,通过具体实例展示了如何利用$exists来处理字段可能为空的情况,适用于数据库查询优化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有时候我们的字段里的数据为空而去查询就会报错。

比如以下形式:

“cartList”:[]

“cartList”:[{}]

“cartList”:{}

“cartList”:null

在查询的时候加上给可能为空的字段加上$exists。

以下内容抄自,感谢博主https://blog.youkuaiyun.com/yaomingyang/article/details/75116142

 

$exists语法: field: $exists: <boolean> }

1.当boolean为true,$exists匹配包含字段的文档,包括字段值为null的文档。

2.当boolean为false,$exists返回不包含对应字段的文档。

如下records集合:
{ a: 5, b: 5, c: null }
{ a: 3, b: null, c: 8 }
{ a: null, b: 3, c: 9 }
{ a: 1, b: 2, c: 3 }
{ a: 2, c: 5 }
{ a: 3, b: 2 }
{ a: 4 }
{ b: 2, c: 4 }
{ b: 2 }{ c: 6 }
db.records.find( { a: { $exists: true } } )
查询结果是:
{ a: 5, b: 5, c: null }
{ a: 3, b: null, c: 8 }
{ a: null, b: 3, c: 9 }
{ a: 1, b: 2, c: 3 }
{ a: 2, c: 5 }
{ a: 3, b: 2 }
{ a: 4 }

db.records.find( { b: { $exists: false } } )

  查询结果如下:

{ a: 2, c: 5 }
{ a: 4 }
{ c: 6 }

  

转载于:https://www.cnblogs.com/qiu-freedom/p/10736182.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值