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



我的目标是查询数组中大小小于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在simple find中使用操作符。

BasicDBObject中等效为

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

相关内容

  • 没有找到相关文章

最新更新