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代码

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Il est recommandé d'utiliser la dernière version de MongoDB (actuellement 5.0) car elle fournit les dernières fonctionnalités et améliorations. Lors de la sélection d'une version, vous devez prendre en compte les exigences fonctionnelles, la compatibilité, la stabilité et le support de la communauté. Par exemple, la dernière version comporte des fonctionnalités telles que les transactions et l'optimisation du pipeline d'agrégation. Assurez-vous que la version est compatible avec l'application. Pour les environnements de production, choisissez la version avec support à long terme. La dernière version bénéficie d'un support communautaire plus actif.

Node.js est un environnement d'exécution JavaScript côté serveur, tandis que Vue.js est un framework JavaScript côté client permettant de créer des interfaces utilisateur interactives. Node.js est utilisé pour le développement côté serveur, comme le développement d'API de service back-end et le traitement des données, tandis que Vue.js est utilisé pour le développement côté client, comme les applications monopage et les interfaces utilisateur réactives.

Avec le développement d'Internet, la vie des gens devient de plus en plus numérique et la demande de personnalisation devient de plus en plus forte. À l’ère de l’explosion de l’information, les utilisateurs sont souvent confrontés à des quantités massives d’informations et n’ont pas le choix. L’importance des systèmes de recommandation en temps réel est donc devenue de plus en plus importante. Cet article partagera l'expérience de l'utilisation de MongoDB pour implémenter un système de recommandation en temps réel, dans l'espoir de fournir de l'inspiration et de l'aide aux développeurs. 1. Introduction à MongoDB MongoDB est une base de données NoSQL open source connue pour ses hautes performances, sa scalabilité facile et son modèle de données flexible. Par rapport à la biographie

Les données de la base de données MongoDB sont stockées dans le répertoire de données spécifié, qui peut être situé dans le système de fichiers local, le système de fichiers réseau ou le stockage cloud. L'emplacement spécifique est le suivant : Système de fichiers local : Le chemin par défaut est Linux/macOS : /data/db, Windows : C:\data\db. Système de fichiers réseau : le chemin dépend du système de fichiers. Stockage cloud : le chemin est déterminé par le fournisseur de stockage cloud.

La base de données MongoDB est connue pour sa flexibilité, son évolutivité et ses hautes performances. Ses avantages incluent : un modèle de données documentaires qui permet de stocker les données de manière flexible et non structurée. Évolutivité horizontale vers plusieurs serveurs via le partitionnement. Flexibilité des requêtes, prenant en charge les requêtes complexes et les opérations d’agrégation. La réplication des données et la tolérance aux pannes garantissent la redondance des données et la haute disponibilité. Prise en charge de JSON pour une intégration facile avec les applications frontales. Hautes performances pour une réponse rapide même lors du traitement de grandes quantités de données. Open source, personnalisable et gratuit à utiliser.

MongoDB est un système de base de données distribuée orienté document utilisé pour stocker et gérer de grandes quantités de données structurées et non structurées. Ses concepts de base incluent le stockage et la distribution de documents, et ses principales fonctionnalités incluent le schéma dynamique, l'indexation, l'agrégation, la réduction de mappage et la réplication. Il est largement utilisé dans les systèmes de gestion de contenu, les plateformes de commerce électronique, les sites Web de réseaux sociaux, les applications IoT et le développement d'applications mobiles.

Le fichier de base de données MongoDB se trouve dans le répertoire de données MongoDB, qui est /data/db par défaut, qui contient .bson (données du document), ns (informations de collecte), journal (enregistrements d'opération d'écriture), wiredTiger (données lors de l'utilisation de WiredTiger moteur de stockage) et config (informations de configuration de la base de données) et autres fichiers.

Sous Linux/macOS : Créez le répertoire de données et démarrez le service "mongod". Sous Windows : créez le répertoire de données et démarrez le service MongoDB à partir de Service Manager. Dans Docker : Exécutez la commande "docker run". Sur d'autres plateformes : Veuillez consulter la documentation MongoDB. Méthode de vérification : exécutez la commande "mongo" pour vous connecter et afficher la version du serveur.
