我正在开发一个使用 MongoDB 的现有基于 Java 的应用程序
在其中一堂课中,我看到了一个 mongo db 组,如下所示
BasicDBList result = (BasicDBList) coll.group(key, cond, initial, reduce);
其中key
, cond
,initial
是三个不同BasicDBObject
的 , 而 reduce 是一个字符串形式的函数
我的问题是我们可以看到形成的查询吗?
我正在开发一个使用 MongoDB 的现有基于 Java 的应用程序
在其中一堂课中,我看到了一个 mongo db 组,如下所示
BasicDBList result = (BasicDBList) coll.group(key, cond, initial, reduce);
其中key
, cond
,initial
是三个不同BasicDBObject
的 , 而 reduce 是一个字符串形式的函数
我的问题是我们可以看到形成的查询吗?
如果你有 MongoDB Java 驱动程序的源代码,你可以看看com.mongodb.GroupCommand
这个查询是如何构建的,它看起来像这样:
BasicDBObject args = new BasicDBObject();
args.put( "ns" , input );
args.put( "key" , keys );
args.put( "cond" , condition );
args.put( "$reduce" , reduce );
args.put( "initial" , initial );
if ( finalize != null )
args.put( "finalize" , finalize );
return new BasicDBObject( "group" , args );
这转化为一个组命令(http://docs.mongodb.org/manual/reference/command/group/),如下所示:
{ "group" : { "ns" : "coll" ,
"key" : {<keys>} ,
"cond" : {<cond>} ,
"$reduce" : "<reduce>" ,
"initial" : { }
}
}