Spring data提供了各种用于CRUD、分页和mongob排序的存储库。当我们需要来自mongob的使用各种属性的文档时,我们倾向于编写findBy
方法或编写带有显式查询的方法,并用@Query
注释。但是如果我的文档有许多属性并且我需要各种获取文档的方法,Spring是否提供了一种“存储库方法”来接收属性和值的Map?编写各种findBy
可能很麻烦。使用QueryDSL似乎是一种选择,但需要代码生成和build.gradle更改。如果基于map的解决方案不可用,我可以使用QueryDSL。
对于ex:
class FooDocument {
String id ;//mongodb ObjectId
String name
String version
boolean deleteIndicator
... any more attributes
}
需要存储库上的方法,如
List<FooDocument> findByMap ( Map attrValMap );
调用方法(groovy)
repository.findByMap ( [ "name" : "fooname", "version" : "1.0" ] )
repository.findByMap ( [ "name" : "fooname"] )
repository.findByMap ( [ "version" : "1.0", "deleteIndicator" : false] )
我愿意使用Criteria/Query
组合或BasicDBObject
编写此方法,如果Spring数据不能开箱即用地提供此功能,则使用MongoAction接口。
我不确定Spring Data是否可以轻松做到。但是如果您愿意使用MongoDB的BasicDBObject
来获得您需要的东西,那么您可以通过以下方式使用它:
BasicDBObject doc = new BasicDBObject("name", "fooname").append("version", "1.0");
DBCursor cursor = find(doc);
List<FooDocument> fooDocList = new ArrayList<FooDocument>();
while (cursor.hasNext()) {
DBObject obj = cursor.next();
FooDocument foo = mongoTemplate.getConverter().read(FooDocument.class, obj);
fooDocList.add(foo);
}
问题内容: 该脚本绘制控件,英雄,表面和地图: 有一个英雄,当玩家使用控件移动他时必须重新绘制,所有其他可绘制对象也必须重新绘制。问题在于绘制地图是一个漫长的过程,因此我创建的地图越大,英雄移动的速度就越慢,因为必须绘制地图的每个图块。有没有一种方法可以将所有图块以其他方法放置到一个位图,然后在canvas方法中绘制该位图? 问题答案: 最好的选择是只绘制地图在屏幕上可见的部分。这样,无论整个地图
这是我得到的错误消息
在我前面的问题中 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 258 4 418 1 676 5 109 46 177 11 286 57 463 68 750 25 121 393 196 418 317 811 514 229 832 040 尽管Java8中函数的代码风格表示仍然让我感到困惑,但我可以肯定它与fibonacci序列的
有没有想过为什么使用Dociety的ODM会在同一个查询上返回零结果? 更新#1看起来教义\MongoDB\Query\Builder::near()L363有问题。方法参数忽略第二个值($Y)。因此只传递要执行的第一个值。
本文向大家介绍查找图的匹配数,包括了查找图的匹配数的使用技巧和注意事项,需要的朋友参考一下 问题陈述 下图的匹配数字是多少? 解 顶点数= 9 我们只能匹配8个顶点。 匹配号码为4。