mongoDB第五讲
CountDistinctGroup 1.Count 请查询persons中美国学生的人数. db.persons.find({country:USA}).count() 2.Distinct 请查询出persons中一共有多少个国家分别是什么. db.runCommand({distinct:persons“, key:country}).values 3.Group 语法: db.runCommand({g
Count+Distinct+Group
1.Count
请查询persons中美国学生的人数.
db.persons.find({country:"USA"}).count()
2.Distinct
请查询出persons中一共有多少个国家分别是什么.
db.runCommand({distinct:"persons“, key:"country"}).values
3.Group
语法:
db.runCommand({group:{
ns:集合名字,
Key:分组的键对象,
Initial:初始化累加器,
$reduce:组分解器,
Condition:条件,
Finalize:组完成器
}})
分组首先会按照key进行分组,每组的 每一个文档全要执行$reduce的方法,
他接收2个参数一个是组内本条记录,一个是累加器数据.
3.1请查出persons中每个国家学生数学成绩最好的学生信息(必须在90以上)
db.runCommand({group:{
ns:"persons",
key:{"country":true},
initial:{m:0},
$reduce:function(doc,prev){
if(doc.m > prev.m){
prev.m = doc.m;
prev.name = doc.name;
prev.country = doc.country;
}
},
condition:{m:{$gt:90}}
}})
3.2在3.1要求基础之上把每个人的信息链接起来写一个描述赋值到m上
finalize:function(prev){
prev.m = prev.name+" Math scores "+prev.m
}
4.用函数格式化分组的键
4.1如果集合中出现键Counrty和counTry同时存在
db.persons.insert({
name:"USPCAT",
age:27,
email:"2145567457@qq.com",
c:89,m:100,e:67,
counTry:"China",
books:["JS","JAVA","EXTJS","MONGODB"]
})
那分组有点麻烦这要如何解决呢?
db.runCommand({group:{
ns:"persons",
$keyf:function(doc){
if(doc.counTry){
return {country:doc.counTry}
}else{
return {country:doc.country}
}
},
initial:{m:0},
$reduce:function(doc,prev){
if(doc.m > prev.m){
prev.m = doc.m;
prev.name = doc.name;
if(doc.country){
prev.country = doc.country;
}else{
prev.country = doc.counTry;
}
}
},
finalize:function(prev){
prev.m = prev.name+" Math scores "+prev.m
},
condition:{m:{$gt:90}}
}})
数据库命令操作
1.命令执行器runCommand
1.1用命令执行完成一次删除表的操作
db.runCommand({drop:"map"})
{
"nIndexesWas" : 2,
"msg" : "indexes dropped forcollection",
"ns" : "foobar.map",
"ok" : 1
}
2.如何查询mongoDB为我们提供的命令
1.在shell中执行 db.listCommands()
2.访问网址http://localhost:28017/_commands,需要先通过
mongod --dbpath d:\app\mongodata --rest命令打开简单的rest API
3.常用命令举例
3.1查询服务器版本号和主机操作系统
db.runCommand({buildInfo:1})
3.2查询执行集合的详细信息,大小,空间,索引等……
db.runCommand({collStats:"persons"})
3.3查看操作本集合最后一次错误信息
db.runCommand({getLastError:"persons"})
固定集合特性
2.固定特性
2.1固定集合默认是没有索引的就算是_id也是没有索引的
2.2由于不需分配新的空间他的插入速度是非常快的
2.3固定集合的顺是确定的导致查询速度是非常快的
2.4最适合的是应用就是日志管理喎?http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+My60tL2oucy2qLyvus88L3A+CjxwPiAgICAgICAzLjG0tL2o0ru49tDCtcS5zLaovK+6z9Kqx/O089ChyscxMDC49tfWvdosv8nS1LTmtKLOxLW1MTC49jwvcD4KPHA+ICAgICAgICAgICAgZGIuY3JlYXRlQ29sbGVjdGlvbigmcXVvdDtteWNvbGwmcXVvdDsse3NpemU6MTAwLGNhcHBlZDp0cnVlLG1heDoxMH0pPC9wPgo8cD4gICAgICAgIDMuMrDR0ru49sbVzai8r7rP16q7u7PJucy2qLyvus88L3A+CjxwPiAgICAgICAgICAgICBkYi5ydW5Db21tYW5kKHtjb252ZXJ0VG9DYXBwZWQ6obFwZXJzb25zobEsc2l6ZToxMDAwMDB9KTwvcD4KPHA+NC63tM/yxcXQ8izErMjPysey5cjry7PQ8sXF0PIuPC9wPgo8cD4gICAgICAgIDQuMbLp0a+5zLaovK+6z215Y29sbLKix9K3tM/sxcXQ8jwvcD4KPHA+ICAgICAgICAgICAgIGRiLm15Y29sbC5maW5kKCkuc29ydCh7JG5hdHVyYWw6LTF9KTwvcD4KPHA+NS7OsrK/086x6iy/yc+nc2hlbGyyu9ans9ZqYXZhus1waHC1yMf9tq/Kx9ans9a1xDwvcD4KPHA+ICAgICAgICA1LjHOsrK/086x6rjFxO48L3A+CjxwPiAgICAgICAgICAgICDV4srHuPbM2MritcTWu8Tc08O1vbnMtqi8r7rPye3Jz7XE086x6izL+9Taw7vT0L3hufu1xMqxuvI8L3A+CjxwPiAgICAgICAgICAgICDSsrK7u9jX1Lavz/q72Sy2+MrH0rvWsbXItP294bn7tcS1vcC0PC9wPgo8cD48c3Ryb25nPkdyaWRGU87EvP7Ptc2zPC9zdHJvbmc+PC9wPgo8cD4xLrjFxO48L3A+CjxwPiAgICAgICAgICBHcmlkRlPKx21vbmdvRELX1LT4tcTOxLz+z7XNs8v708O2/r341sa1xNDOyr205rSizsS8/jwvcD4KPHA+ICAgICAgICAgILTz0M3OxLz+z7XNs7XEvvi087bgysfM2NDUR3JpZEZTyKu/ydLUzeqzyTwvcD4KPHA+Mi7A+9PDtcS5pL7fbW9uZ29maWxlcy5leGU8L3A+CjxwPjMuyrnTw0dyaWRGUzwvcD4KPHA+ICAgICAgICAgIDMuMbLpv7RHcmlkRlO1xMv509C5psTcPC9wPgo8cD4gICAgICAgICAgY21kOm1vbmdvZmlsZXM8L3A+CjxwPiAgICAgICAgICAzLjLJz7Sr0ru49s7EvP48L3A+CjxwPiAgICAgICAgICAgbW9uZ29maWxlcyAtZCBmb29iYXIgLWwmcXVvdDtFOlxhLnR4dCZxdW90OyBwdXQgJnF1b3Q7YS50eHShsDwvcD4KPHA+ICAgICAgICAgIDMuM7Lpv7RHcmlkRlO1xM7EvP605rSi17TMrDwvcD4KPHA+ICAgICAgICAgICAgICAgILyvus+y6b+0PC9wPgo8cD4gICAgICAgICAgICAgICAgZGIuZnMuY2h1bmtzLmZpbmQoKSC6zWRiLmZzLmZpbGVzLmZpbmQoKSC05rSiwcvOxLz+z7XNs7XEy/nT0M7EvP7Qxc+iPC9wPgo8cD4zLjSy6b+0zsS8/sTayN08L3A+CjxwPiAgICBFOlwmZ3Q7bW9uZ29maWxlcyAtZCBmb29iYXIgZ2V0ICZxdW90O2EudHh0obA8L3A+CjxwPiAgICBWVUW/ydLUsum/tCxzaGVsbM7et6i08r+qzsS8/jwvcD4KPHA+My41sum/tMv509DOxLz+PC9wPgo8cD4gICAgbW9uZ29maWxlcyAtZCBmb29iYXIgbGlzdDwvcD4KPHA+My41yb6z/dLRvq205tTatcTOxLz+VlVF1tCy2df3PC9wPgo8cD4gICAgbW9uZ29maWxlcyAtZCBmb29iYXIgZGVsZXRlIA=="a.txt'
服务器端脚本
1.Eval
1.1服务器端运行eval
db.eval("function(name){return name}","uspcat")
2.Javascript的存储
2.1在服务上保存js变量活着函数共全局调用
1.把变量加载到特殊集合system.js中
db.system.js.insert({_id:name,value:”uspcat”})
2.调用
db.eval("return name;")
System.js相当于Oracle中的存储过程,因为value不单单可以写变量
还可以写函数体也就是javascript代码

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Adalah disyorkan untuk menggunakan versi terkini MongoDB (kini 5.0) kerana ia menyediakan ciri dan penambahbaikan terkini. Apabila memilih versi, anda perlu mempertimbangkan keperluan fungsian, keserasian, kestabilan dan sokongan komuniti Sebagai contoh, versi terkini mempunyai ciri seperti transaksi dan pengoptimuman saluran paip. Pastikan versi itu serasi dengan aplikasi. Untuk persekitaran pengeluaran, pilih versi sokongan jangka panjang. Versi terkini mempunyai sokongan komuniti yang lebih aktif.

Node.js ialah masa jalan JavaScript bahagian pelayan, manakala Vue.js ialah rangka kerja JavaScript sisi klien untuk mencipta antara muka pengguna interaktif. Node.js digunakan untuk pembangunan bahagian pelayan, seperti pembangunan API perkhidmatan belakang dan pemprosesan data, manakala Vue.js digunakan untuk pembangunan sisi klien, seperti aplikasi satu halaman dan antara muka pengguna yang responsif.

Data pangkalan data MongoDB disimpan dalam direktori data yang ditentukan, yang boleh terdapat dalam sistem fail tempatan, sistem fail rangkaian atau storan awan Lokasi khusus adalah seperti berikut: Sistem fail tempatan: Laluan lalai ialah Linux/macOS: /data/db, Windows: C:\data\db. Sistem fail rangkaian: Laluan bergantung pada sistem fail. Storan Awan: Laluan ditentukan oleh pembekal storan awan.

Pangkalan data MongoDB terkenal dengan fleksibiliti, skalabiliti dan prestasi tingginya. Kelebihannya termasuk: model data dokumen yang membolehkan data disimpan dengan cara yang fleksibel dan tidak berstruktur. Skala mendatar kepada berbilang pelayan melalui sharding. Fleksibiliti pertanyaan, menyokong pertanyaan kompleks dan operasi pengagregatan. Replikasi data dan toleransi kesalahan memastikan lebihan data dan ketersediaan tinggi. Sokongan JSON untuk penyepaduan mudah dengan aplikasi bahagian hadapan. Prestasi tinggi untuk respons pantas walaupun semasa memproses sejumlah besar data. Sumber terbuka, boleh disesuaikan dan percuma untuk digunakan.

MongoDB ialah sistem pangkalan data teragih berorientasikan dokumen yang digunakan untuk menyimpan dan mengurus sejumlah besar data berstruktur dan tidak berstruktur. Konsep terasnya termasuk penyimpanan dan pengedaran dokumen, dan ciri utamanya termasuk skema dinamik, pengindeksan, pengagregatan, pengurangan peta dan replikasi. Ia digunakan secara meluas dalam sistem pengurusan kandungan, platform e-dagang, laman web media sosial, aplikasi IoT dan pembangunan aplikasi mudah alih.

Pada Linux/macOS: Cipta direktori data dan mulakan perkhidmatan "mongod". Pada Windows: Cipta direktori data dan mulakan perkhidmatan MongoDB daripada Pengurus Perkhidmatan. Dalam Docker: Jalankan arahan "docker run". Pada platform lain: Sila rujuk dokumentasi MongoDB. Kaedah pengesahan: Jalankan arahan "mongo" untuk menyambung dan melihat versi pelayan.

Fail pangkalan data MongoDB terletak dalam direktori data MongoDB, iaitu /data/db secara lalai, yang mengandungi .bson (data dokumen), ns (maklumat pengumpulan), jurnal (tulis rekod operasi), wiredTiger (data apabila menggunakan WiredTiger enjin storan ) dan konfigurasi (maklumat konfigurasi pangkalan data) dan fail lain.

Penyelesaian untuk menyelesaikan isu tamat tempoh Navicat termasuk: memperbaharui lesen dan menyahpasang semula kemas kini automatik, hubungi Navicat Premium Essentials;
