Sequoiadb 聚集的问题!

wanghan_data 发布于 2014/07/02 16:33
阅读 290
收藏 0

如果我的数据库里存储了这样几条记录


{ library: ‘foo’,

  books: 

    { 

      name: ‘harry potter’,

      year: 2005,

      price: 70 

    }

}

{ library: ‘foo’,

  books: 

    {

      name: 'Game of Thrones’,

      year: 2012,

      price: 80,

    }

}

{ library: ‘foo’,

  books: 


  {

      name: ‘jobs’,

      year: 20012,

      price: 120,

    }


}



怎样用聚合(aggregate)命令计算'foo'图书馆的所有三本书的平均价格(avg. price)

加载中
0
qutan
qutan

db.transport.cars.aggregate(

db.foo.bar.aggregate({$match:{library:'foo'}},{$project:{library:1,'books.price':1}},

{$group:{_id:’$library’, average:{$avg:’$books.price’},library_name:{$first:’$library’}}})

返回应该类似于

{ ‘library_name’:’foo’, ‘average’ : 90 }


$match 是 select condition

$project 是选择输出那些结果

$group 对结果集分组

$avg 求结果

$first输出第一个记录的字段

手写的命令,没实测,你可以自己在数据库插入几条数据试试看。

返回顶部
顶部