如何解决如何在 Java 中为 Mongodb 创建动态查询
我有这样的数据,列表可以有多个键值对,这个键是动态确定并保存的。
我想做的是在 Java 中动态查询这些数据。 我有这样的基本查询:
Bson query = Filters.and(
eq("base_form_id",Long.valueOf(componentModelDTOList.get(0).getFormId())),eq("saved_form_id",Long.valueOf(componentModelDTOList.get(0).getFormGrubuId())));
我想添加和 |或查询此过滤器并在 db 上运行。现在我可以添加 optionalFilter(这是一个和查询)来查询
Bson optionalFilter = Filters.and(
eq("form_data_list.".concat(componentModels.get(j).getKey()),//equals=form_data_list.name
componentModels.get(j).getValue1())); // equals = test
BsonDocument optionalBsonDocument = optionalFilter.toBsonDocument(
BsonDocument.class,MongoClient.getDefaultCodecRegistry());
bsonDocument.append("form_data_list.".concat(componentModels.get(j).getKey()),optionalBsonDocument.get("form_data_list.".concat(componentModels.get(j).getKey())));
Bson optionalFilter2 = Filters.or(
eq("form_data_list.".concat(componentModels.get(j).getKey()),// equals = form_data_list.name
componentModels.get(j).getValue1())); // equals = test
我收到错误: 键 form_data_list.name 的值不能为空。
我做错了什么?或者有比我更好的方法吗? 谢谢
我使用的是 mongo-java-driver : 3.4.3
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。