我们如何使用 springboot 查询大小小于 mongodb 中某个特定值的数组字段?

How can we query array field with size less than some specific value in mongodb using springboot?

我的objective是查询小于5的数组字段

我尝试了以下解决方案

MongoDatabase database = mongoClient.getDatabase("Friends");
        MongoCollection<Document> collection = database.getCollection("Friend");

        BasicDBObject filter = new BasicDBObject("MainArray", new BasicDBObject("$lt", new BasicDBObject("$size", 4)));
        collection.find(filter).forEach((Consumer<Document>) doc -> {
//perform operations
}

我想获取大小小于 4 的字段。

如果我直接输入 4 号 -- new BasicDBObject("$size",4) 它确实有效。

但我想获取数组大小小于 4 的字段。在那种情况下它不起作用。

请提出您宝贵的建议。

您没有使用注释。

{$expr:{$lt:[{$size:"$MainArray"}, 5]}}

您需要使用 $expr 才能在简单查找中使用运算符。

BasicDBObject 等价于

new BasicDBObject("$expr", 
       new BasicDBObject("$lt", 
            Arrays<DBObject>.asList(new BasicDBObject("$size", "$MainArray"), 5)
       )
)