我们如何使用 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)
)
)
我的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)
)
)