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

我有 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 获取不同的内容,我该怎么做?


手掌心
浏览 60回答 1
1回答

犯罪嫌疑人X

我不确定您使用哪个 mongodb 客户端库来为 mongodb 创建查询;我正在分享您可以在 mongodb 控制台中运行的查询以获得您想要的结果。我希望您知道如何使用 mongodb 客户端库创建此查询db.shop.distinct('brand.code',&nbsp;myQuery) //Replace&nbsp;myQuery&nbsp;with&nbsp;your&nbsp;query&nbsp;e.g.&nbsp;{isActive:&nbsp;true}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java