为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用投影和过滤器区分 MongoDB 中的查询?

如何使用投影和过滤器区分 MongoDB 中的查询?

手掌心 2023-09-27 16:07:15
我有 mongo 中的属性列表,我正在查询一些嵌套字段。这是我的代码,public List<Brand> searchBrands(Request request) {    final MongoCollection<Document> collection = mongoDatabase.getCollection("shop");    final Document query = new Document();    final Document projection = new Document();    final List<Brand> brandList = new ArrayList<>();    query.append("_id", request.getId());    query.append("isActive", true);    if (request.Year() != null) {        query.append("attributes.name", "myYear");        query.append("attributes.value", request.getYear());    }    projection.append("brand.code", 1.0);    projection.append("brand.description", 1.0);    projection.append("_id", 0.0);    Block<Document> processBlock = document -> brandList.            add(Brand.builder().code(document.get("brand",Document.class).getString("code"))                    .description(document.get("brand",Document.class).getString("description"))                    .build());    collection.find(query).projection(projection).forEach(processBlock);    return brandList;}以上代码正确返回结果,有 72 个具有相同品牌代码的商品。但我想根据brand.code 获取不同的内容,我该怎么做?
查看完整描述

1 回答

?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

我不确定您使用哪个 mongodb 客户端库来为 mongodb 创建查询;我正在分享您可以在 mongodb 控制台中运行的查询以获得您想要的结果。我希望您知道如何使用 mongodb 客户端库创建此查询

db.shop.distinct('brand.code', myQuery)
//Replace myQuery with your query e.g. {isActive: true}


查看完整回答
反对 回复 2023-09-27
  • 1 回答
  • 0 关注
  • 59 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信