MongoDB java组/计数函数

MongoDB java组/计数函数,java,mongodb,Java,Mongodb,我是MongoDB新手,必须使用jsp/servlet创建简单的站点 我需要创建一个查询,它将返回某个站点被访问的次数计数 我的数据库如下所示: { "_id" : { "$oid" : "5117fa92f1d3a4093d0d3902"} , "ip" : "127.0.0.1" , "datum" : { "$date" : "2013-02-10T19:52:50.051Z"} , "odlaznaStr" : "localhost:8080/mongoProjekat/" , "dol

我是MongoDB新手,必须使用jsp/servlet创建简单的站点

我需要创建一个查询,它将返回某个站点被访问的次数计数

我的数据库如下所示:

{ "_id" : { "$oid" : "5117fa92f1d3a4093d0d3902"} , "ip" : "127.0.0.1" , "datum" : { "$date" : "2013-02-10T19:52:50.051Z"} , "odlaznaStr" : "localhost:8080/mongoProjekat/" , "dolaznaStr" : "localhost:8080/mongoProjekat/treca"}<br>
{ "_id" : { "$oid" : "5117fa92f1d3a4093d0d3903"} , "ip" : "127.0.0.1" , "datum" : { "$date" : "2013-02-10T19:52:50.796Z"} , "odlaznaStr" : "localhost:8080/mongoProjekat/treca.jsp" , "dolaznaStr" : "localhost:8080/mongoProjekat/peta"}<br>
{ "_id" : { "$oid" : "5117fa93f1d3a4093d0d3904"} , "ip" : "127.0.0.1" , "datum" : { "$date" : "2013-02-10T19:52:51.141Z"} , "odlaznaStr" : "localhost:8080/mongoProjekat/peta.jsp" , "dolaznaStr" : "localhost:8080/mongoProjekat/treca"}<br>
{ "_id" : { "$oid" : "5117fa93f1d3a4093d0d3905"} , "ip" : "127.0.0.1" , "datum" : { "$date" : "2013-02-10T19:52:51.908Z"} , "odlaznaStr" : "localhost:8080/mongoProjekat/treca.jsp" , "dolaznaStr" : "localhost:8080/mongoProjekat/cetvrta"}<br>
{ "_id" : { "$oid" : "5117fa94f1d3a4093d0d3906"} , "ip" : "127.0.0.1" , "datum" : { "$date" : "2013-02-10T19:52:52.035Z"} , "odlaznaStr" : "localhost:8080/mongoProjekat/treca.jsp" , "dolaznaStr" : "localhost:8080/mongoProjekat/cetvrta"}<br>
{ "_id" : { "$oid" : "5117fa94f1d3a4093d0d3907"} , "ip" : "127.0.0.1" , "datum" : { "$date" : "2013-02-10T19:52:52.197Z"} , "odlaznaStr" : "localhost:8080/mongoProjekat/cetvrta.jsp" , "dolaznaStr" : "localhost:8080/mongoProjekat/treca"}
page: localhost:8080/mongoProjekat/treca visited: n(times)<br>
page: localhost:8080/mongoProjekat/druga visited: n(times)
{u id:{“$oid”:“5117fa92f1d3a4093d0d3902”},“ip”:“127.0.0.1”,“数据”:{“$date”:“2013-02-10T19:52:50.051Z”},“odlaznaStr”:“本地主机:8080/mongoProjekat/”,“dolaznaStr”:“本地主机:8080/mongoProjekat/treca”}
{“{u id:{“$oid:”5117fa92f1d3a4093d0d3903“},“ip:”127.0.0.1“,”数据:{“$date:”2013-02-10T19:52:50.796Z“,”odlaznaStr:“localhost:8080/mongoProjekat/treca.jsp”,“dolaznaStr:”localhost:8080/mongoProjekat/peta“}
{“{u id”:{“$oid”:“5117fa93f1d3a4093d0d3904”},“ip”:“127.0.0.1”,“数据”:{“$date”:“2013-02-10T19:52:51.141Z”},“odlaznaStr”:“localhost:8080/mongoProjekat/peta.jsp”,“dolaznaStr”:“localhost:8080/mongoProjekat/treca”}
{“{u id”:{“$oid”:“5117fa93f1d3a4093d0d3905”},“ip”:“127.0.0.1”,“数据”:{“$date”:“2013-02-10T19:52:51.908Z”},“odlaznaStr”:“localhost:8080/mongoProjekat/treca.jsp”,“dolaznaStr”:“localhost:8080/mongoProjekat/cetvrta”}
{“{u id”:{“$oid”:“5117fa94f1d3a4093d0d3906”},“ip”:“127.0.0.1”,“数据”:{“$date”:“2013-02-10T19:52:52.035Z”},“odlaznaStr”:“localhost:8080/mongoProjekat/treca.jsp”,“dolaznaStr”:“localhost:8080/mongoProjekat/cetvrta”}
{“{u id”:{“$oid”:“5117fa94f1d3a4093d0d3907”},“ip”:“127.0.0.1”,“数据”:{“$date”:“2013-02-10T19:52:52.197Z”},“odlaznaStr”:“localhost:8080/mongoProjekat/cetvrta.jsp”,“dolaznaStr”:“localhost:8080/mongoProjekat/treca”}
我需要的是这样一个结果:

{ "_id" : { "$oid" : "5117fa92f1d3a4093d0d3902"} , "ip" : "127.0.0.1" , "datum" : { "$date" : "2013-02-10T19:52:50.051Z"} , "odlaznaStr" : "localhost:8080/mongoProjekat/" , "dolaznaStr" : "localhost:8080/mongoProjekat/treca"}<br>
{ "_id" : { "$oid" : "5117fa92f1d3a4093d0d3903"} , "ip" : "127.0.0.1" , "datum" : { "$date" : "2013-02-10T19:52:50.796Z"} , "odlaznaStr" : "localhost:8080/mongoProjekat/treca.jsp" , "dolaznaStr" : "localhost:8080/mongoProjekat/peta"}<br>
{ "_id" : { "$oid" : "5117fa93f1d3a4093d0d3904"} , "ip" : "127.0.0.1" , "datum" : { "$date" : "2013-02-10T19:52:51.141Z"} , "odlaznaStr" : "localhost:8080/mongoProjekat/peta.jsp" , "dolaznaStr" : "localhost:8080/mongoProjekat/treca"}<br>
{ "_id" : { "$oid" : "5117fa93f1d3a4093d0d3905"} , "ip" : "127.0.0.1" , "datum" : { "$date" : "2013-02-10T19:52:51.908Z"} , "odlaznaStr" : "localhost:8080/mongoProjekat/treca.jsp" , "dolaznaStr" : "localhost:8080/mongoProjekat/cetvrta"}<br>
{ "_id" : { "$oid" : "5117fa94f1d3a4093d0d3906"} , "ip" : "127.0.0.1" , "datum" : { "$date" : "2013-02-10T19:52:52.035Z"} , "odlaznaStr" : "localhost:8080/mongoProjekat/treca.jsp" , "dolaznaStr" : "localhost:8080/mongoProjekat/cetvrta"}<br>
{ "_id" : { "$oid" : "5117fa94f1d3a4093d0d3907"} , "ip" : "127.0.0.1" , "datum" : { "$date" : "2013-02-10T19:52:52.197Z"} , "odlaznaStr" : "localhost:8080/mongoProjekat/cetvrta.jsp" , "dolaznaStr" : "localhost:8080/mongoProjekat/treca"}
page: localhost:8080/mongoProjekat/treca visited: n(times)<br>
page: localhost:8080/mongoProjekat/druga visited: n(times)
page:localhost:8080/mongoProjekat/treca访问次数:n次
页面:localhost:8080/mongoProjekat/druga访问次数:n次
…对于访问过的每个页面,依此类推


顺便说一下,我正在使用Java。

您可能会发现这个SQL-to-MongoDB图表很有用

关于你眼前的问题:

    // getCollection

    DBCollection myColl = db.getCollection("toskebre");

    // for the $group operator
    // note - the collection still has the field name "dolaznaStr"
    // but, to we access "dolaznaStr" in the aggregation command, 
    // we add a $ sign in the BasicDBObject 

    DBObject groupFields = new BasicDBObject( "_id", "$dolaznaStr");

    // we use the $sum operator to increment the "count" 
    // for each unique dolaznaStr 
    groupFields.put("count", new BasicDBObject( "$sum", 1));
    DBObject group = new BasicDBObject("$group", groupFields );


    // You can add a sort to order by count descending

    DBObject sortFields = new BasicDBObject("count", -1);
    DBObject sort = new BasicDBObject("$sort", sortFields );


    AggregationOutput output = myColl.aggregate(group, sort);

    System.out.println( output.getCommandResult() );
println将打印:

{ "serverUsed" : "localhost/127.0.0.1:27017" , 
  "result" : [ { "_id" : "localhost:8080/mongoProjekat/treca" , "count" : 3} , 
               { "_id" : "localhost:8080/mongoProjekat/cetvrta" , "count" : 2} ,
               { "_id" : "localhost:8080/mongoProjekat/peta" , "count" : 1}] , 
  "ok" : 1.0}

泰回答凯。我已经找到了和你们类似的解决方案。 我是这样做的:

     DBObject match = new BasicDBObject("stranica","$dolaznaStr");
     DBObject project = new BasicDBObject("$project",match);

     DBObject id = new BasicDBObject("_id",new BasicDBObject("stranica","$stranica"));
     id.put("posete", new BasicDBObject("$sum", 1));
     DBObject group = new BasicDBObject("$group",id);

     DBObject srt = new BasicDBObject("posete",-1);
     DBObject sort = new BasicDBObject("$sort", srt);
     AggregationOutput ao = collection.aggregate(project, group, sort);
看一看,它提供了对mongo处理类似查询的功能的访问。