springboot使用mongo中的or条件查询报错or and nor entries need to be full objects

  • A+
所属分类:MongoDB

---
title: SpringBoot使用Mongo中的or条件查询报错$or/$and/$nor entries need to be full objects
date: 2020-06-19 14:18:23
categories: MongoDB
tags:
- 报错
- SpringBoot
- 查询
- mongo
- or
- 条件
---

报错的写法:

BasicDBList orList = new BasicDBList();
orList.add(new BasicDBObject().put("userGroup", userGroup));
orList.add(new BasicDBObject().put("userGroup", null));
condition.put(QueryOperators.OR, orList);

上面的写法会报错$or/$and/$nor entries need to be full objects,于是debug发现orList里显示有2条记录,但是整个orList里元素为空,这就有点奇怪了,上面不是加了2个BasicDBObject对象了吗?仔细检查才发现,使用put方法的返回值不是BasicDBObject对象,而直接返回了null。

正确的写法如下:

BasicDBList orList = new BasicDBList();
orList.add(new BasicDBObject("userGroup", userGroup));
orList.add(new BasicDBObject("userGroup", null));
condition.put(QueryOperators.OR, orList);

问题解决,特此记录。

ZPY

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: