Jadual Kandungan
聚合(aggregation)
Count
Distinct
Group
MapReduce
查询(Query)
Rumah pangkalan data tutorial mysql Mongo散记--聚合(aggregation)&查询(Query)

Mongo散记--聚合(aggregation)&查询(Query)

Jun 07, 2016 pm 03:58 PM
amp mongo Pertanyaan pempolimeran

mongo官网:http://www.mongodb.org/ 工作中使用到Mongo,但是没有系统的学习研究过Mongo,仅对工作过程中,在Mongo的使用过程中的一些知识点做一下记录,并随时补充,达到总结备忘的目的。 本篇主要终结记录聚合和查询。 聚合(aggregation) Count db.view

mongo官网:http://www.mongodb.org/

工作中使用到Mongo,但是没有系统的学习研究过Mongo,仅对工作过程中,在Mongo的使用过程中的一些知识点做一下记录,并随时补充,达到总结备忘的目的。

本篇主要终结记录聚合和查询。

聚合(aggregation)

Count

db.view_view.count()

db.view_view.count({_id:"521842"})

db.view_view.find().count()

db.view_view.find({_id:"521842"}).count()

Distinct

db.view_view.distinct("_id")

db.view_view.distinct("view") view是个数组,会把每个数组的元素都distinct一下

Group

db.invoke_stat.group({
    key:{ip:true},
    cond:{
        date:{$gte:ISODate("2014-07-09 16:00:00"),$lt:ISODate("2014-07-10 16:00:00")}
    },
    reduce:function(curr,result){
        result.count += curr.times;
    },
    initial:{count:0},
    finalize:function(result) {result.count =  '$' + result.count}
});

db.view_view.group({
    keyf:function(doc){return {view_num:doc.view.length}},
    reduce:function(curr,result){
        result.count += 1;
        result.id = curr._id;
    },
    initial:{count:0}
});
Salin selepas log masuk
关于以上两个group的解释:

key/keyf:要按照进行分组的列,key是直接选取表中的列,kef是一个函数,对列进行一些处理,函数结果要返回一个对象,比如{view_num:doc.view.length},doc.view.length,是表中的数组列view的长度。

cond:是要过滤的查询条件

reduce:处理函数

initial:返回列的初始值

finalize:对reduce的结果进行进一步处理,比如格式化

MapReduce

db.invoke_stat.mapReduce(
  function(){
      var key = this.ip;
      emit(key,{r_times:this.times})
  },
  function(key,emits){
      total=0;
      for(var k in emits) {
          total+=emits[k].r_times;
      }
      return {r_times:total}
  },
  {out:'mr'}
)
Salin selepas log masuk
以上:r_times是我们定义的要返回的列的名称,ip和times是表中的列,mr是我们要把MapReduce的计算结果存入名称为mr的集合中。

mapReduce的原型为:function (map, reduce, optionsOrOutString),下面具体介绍一下函数的三个参数:

map函数,它会遍历集合中的每一个文档,this表示文档,它使用emit方法将文档按键分组,并返回需要统计的数据;

reduce函数,它将收集数据并统计,两个参数分别为map函数返回的key值和数据数组;

optionsOrOutString参数为一个对象,定义了一些额外工作,比如上面的列子中使用out参数将统计结果放入到mr集合中,集合不存在则创建,存在了则覆盖。

参数optionsOrOutString对象除了out键以外还有其它一些键:

finalize函数,同group的finalize完成器一样,可以对reduce的结果做一些处理;

query文档,在map函数前对文档过滤;

sort文档,在map函数前对文档排序,必须先对排序的字段建立索引;

limit整数,在map函数前设定文档数量;

scope文档,js函数中用到的变量,客户端可以通过scope传递一些值;

jsMode布尔,指定了map和reduce函数间传递的对象使用BSON格式还是javascript对象,默认值false,表示采用BSON格式,优点是中间的BSON数据会被存在硬盘上,所以传递的数据量可以很大,但会影响性能;采用javascript对象,性能较高,但只能传递50万个不同的key值;

verbos布尔,默认true,显示详细的时间统计信息。

以上可以看出MapReduce的强大,可以很轻松的实现不同的统计功能。

查询(Query)

mongo查询语法:

db.access_logs_140701.find({jxTime:{$gt:1407011300,$lt:1407011400},"curl.sku":"99978033"}).sort({jxTime:-1}).skip(1).limit(100)

db.invoke_stat.find({date:{$gte:ISODate("2014-07-09 10:00:00"),$lt:ISODate("2014-07-09 11:00:00")}})

db.view_view.find({view:{$size:10}}) 查询数组长度未10的,当前Mongo不直接支持数据长度范围查询,比如查询数据长度

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

12306 Cara menyemak rekod pembelian tiket sejarah Cara menyemak rekod pembelian tiket sejarah 12306 Cara menyemak rekod pembelian tiket sejarah Cara menyemak rekod pembelian tiket sejarah Mar 28, 2024 pm 03:11 PM

Muat turun versi terbaharu aplikasi tempahan tiket 12306 Ia adalah perisian pembelian tiket perjalanan yang semua orang sangat berpuas hati dengannya -pengesahan nama untuk membeli tiket dalam talian Semua pengguna Anda boleh membeli tiket perjalanan dan tiket penerbangan dengan mudah dan menikmati diskaun yang berbeza. Anda juga boleh mula menempah tempahan terlebih dahulu untuk merebut tiket Anda boleh menempah hotel atau pemindahan kereta khas Dengan itu, anda boleh pergi ke mana-mana yang anda mahu pergi dan membeli tiket dengan satu klik lebih mudah dan memudahkan semua orang lebih selesa. Kini editor memperincikannya dalam talian Menyediakan 12306 pengguna cara untuk melihat rekod pembelian tiket sejarah. 1. Buka Keretapi 12306, klik Saya di sudut kanan bawah, dan klik Pesanan Saya 2. Klik Dibayar pada halaman pesanan. 3. Pada halaman berbayar

Bagaimana untuk menyemak kelayakan akademik anda di Xuexin.com Bagaimana untuk menyemak kelayakan akademik anda di Xuexin.com Mar 28, 2024 pm 04:31 PM

Bagaimana untuk menyemak kelayakan akademik saya di Xuexin.com? Anda boleh menyemak kelayakan akademik anda di Xuexin.com Ramai pengguna tidak tahu cara menyemak kelayakan akademik mereka di Xuexin.com Seterusnya, editor membawakan tutorial grafik kepada pengguna tentang cara menyemak kelayakan akademik mereka di Xuexin.com pengguna datang dan lihat! Tutorial penggunaan Xuexin.com: Cara menyemak kelayakan akademik anda di Xuexin.com 1. Pintu masuk Xuexin.com: https://www.chsi.com.cn/ 2. Pertanyaan laman web: Langkah 1: Klik pada alamat Xuexin.com di atas untuk masuk ke laman utama Klik [Education Query]; Langkah 4: Pada halaman log masuk Masukkan maklumat dan klik [Log Masuk];

Perbandingan persamaan dan perbezaan antara MySQL dan PL/SQL Perbandingan persamaan dan perbezaan antara MySQL dan PL/SQL Mar 16, 2024 am 11:15 AM

MySQL dan PL/SQL ialah dua sistem pengurusan pangkalan data yang berbeza, mewakili ciri pangkalan data hubungan dan bahasa prosedur masing-masing. Artikel ini akan membandingkan persamaan dan perbezaan antara MySQL dan PL/SQL, dengan contoh kod khusus untuk digambarkan. MySQL ialah sistem pengurusan pangkalan data hubungan popular yang menggunakan Bahasa Pertanyaan Berstruktur (SQL) untuk mengurus dan mengendalikan pangkalan data. PL/SQL ialah bahasa prosedur yang unik untuk pangkalan data Oracle dan digunakan untuk menulis objek pangkalan data seperti prosedur tersimpan, pencetus dan fungsi. sama

Bagaimana untuk menyemak tarikh pengaktifan pada telefon bimbit Apple Bagaimana untuk menyemak tarikh pengaktifan pada telefon bimbit Apple Mar 08, 2024 pm 04:07 PM

Jika anda ingin menyemak tarikh pengaktifan menggunakan telefon bimbit Apple, cara terbaik ialah menyemaknya melalui nombor siri dalam telefon bimbit Anda juga boleh menyemaknya dengan melawati laman web rasmi Apple, menyambungkannya ke komputer, dan memuat turun ketiga -perisian pihak untuk menyemaknya. Bagaimana untuk menyemak tarikh pengaktifan telefon bimbit Apple Jawapan: Pertanyaan nombor siri, pertanyaan laman web rasmi Apple, pertanyaan komputer, pertanyaan perisian pihak ketiga 1. Cara terbaik untuk pengguna ialah mengetahui nombor siri telefon bimbit mereka nombor siri dengan membuka Tetapan, Umum, Mengenai Mesin Ini. 2. Menggunakan nombor siri, anda bukan sahaja boleh mengetahui tarikh pengaktifan telefon bimbit anda, tetapi juga menyemak versi telefon bimbit, asal telefon bimbit, tarikh kilang telefon bimbit, dll. 3. Pengguna melawati tapak web rasmi Apple untuk mencari sokongan teknikal, mencari bahagian perkhidmatan dan pembaikan di bahagian bawah halaman, dan menyemak maklumat pengaktifan iPhone di sana. 4. Pengguna

Bagaimana untuk menggunakan Oracle untuk bertanya sama ada jadual dikunci? Bagaimana untuk menggunakan Oracle untuk bertanya sama ada jadual dikunci? Mar 06, 2024 am 11:54 AM

Tajuk: Bagaimana untuk menggunakan Oracle untuk bertanya sama ada jadual dikunci? Dalam pangkalan data Oracle, kunci jadual bermaksud bahawa apabila transaksi menjalankan operasi tulis pada jadual, transaksi lain akan disekat apabila mereka ingin melakukan operasi tulis pada jadual atau membuat perubahan struktur pada jadual (seperti menambah lajur, memadam baris , dan lain-lain.). Dalam proses pembangunan sebenar, kita sering perlu bertanya sama ada jadual dikunci untuk menyelesaikan masalah dan menangani masalah berkaitan dengan lebih baik. Artikel ini akan memperkenalkan cara menggunakan pernyataan Oracle untuk bertanya sama ada jadual dikunci dan memberikan contoh kod tertentu. Untuk memeriksa sama ada meja dikunci, kita

Bincangkan perkongsian kemahiran pertanyaan lokasi pangkalan data Bincangkan perkongsian kemahiran pertanyaan lokasi pangkalan data Mar 10, 2024 pm 01:36 PM

Forum adalah salah satu bentuk laman web yang paling biasa di Internet Ia menyediakan pengguna dengan platform untuk berkongsi maklumat, bertukar dan berbincang. Discuz ialah program forum yang biasa digunakan, dan saya percaya ramai juruweb sudah sangat mengenalinya. Semasa pembangunan dan pengurusan forum Discuz, selalunya perlu untuk menanyakan data dalam pangkalan data untuk analisis atau pemprosesan. Dalam artikel ini, kami akan berkongsi beberapa petua untuk menanyakan lokasi pangkalan data Discuz dan memberikan contoh kod khusus. Pertama, kita perlu memahami struktur pangkalan data Discuz

Bagaimana untuk menyemak harga terkini Tongshen Coin? Bagaimana untuk menyemak harga terkini Tongshen Coin? Mar 21, 2024 pm 02:46 PM

Bagaimana untuk menyemak harga terkini Tongshen Coin? Token ialah mata wang digital yang boleh digunakan untuk membeli item, perkhidmatan dan aset dalam permainan. Ia tidak berpusat, bermakna ia tidak dikawal oleh kerajaan atau institusi kewangan. Transaksi Tongshen Coin dijalankan pada blockchain, yang merupakan lejar teragih yang merekodkan maklumat semua transaksi Tongshen Coin. Untuk menyemak harga terkini Token, anda boleh menggunakan langkah berikut: Pilih tapak web atau apl semakan harga yang boleh dipercayai. Beberapa tapak web pertanyaan harga yang biasa digunakan termasuk: CoinMarketCap: https://coinmarketcap.com/Coindesk: https://www.coindesk.com/ Binance: https://www.bin

Bagaimana untuk menyemak harga syiling BitTorrent terkini? Bagaimana untuk menyemak harga syiling BitTorrent terkini? Mar 06, 2024 pm 02:13 PM

Semak harga terkini BitTorrent Coin (BTT) BTT ialah mata wang kripto pada blockchain TRON yang digunakan untuk memberi ganjaran kepada pengguna rangkaian BitTorrent kerana berkongsi dan memuat turun fail. Begini cara untuk mencari harga terkini untuk BTT: Pilih tapak web atau apl semakan harga yang boleh dipercayai. Beberapa tapak web pertanyaan harga yang biasa digunakan termasuk: CoinMarketCap: https://coinmarketcap.com/Coindesk: https://www.coindesk.com/Binance: https://www.binance.com/ Cari di tapak web atau aplikasi BTT. Semak harga terkini untuk BTT. Nota: Harga Mata Wang Kripto

See all articles