mongoDB第五讲

Jun 07, 2016 pm 03:54 PM
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代码

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

mongodb에는 일반적으로 어떤 버전이 사용됩니까? mongodb에는 일반적으로 어떤 버전이 사용됩니까? Apr 07, 2024 pm 05:48 PM

mongodb에는 일반적으로 어떤 버전이 사용됩니까?

nodejs와 vuejs의 차이점 nodejs와 vuejs의 차이점 Apr 21, 2024 am 04:17 AM

nodejs와 vuejs의 차이점

MongoDB를 활용한 실시간 추천 시스템 구현 경험 공유 MongoDB를 활용한 실시간 추천 시스템 구현 경험 공유 Nov 03, 2023 pm 04:37 PM

MongoDB를 활용한 실시간 추천 시스템 구현 경험 공유

mongodb 데이터베이스의 장점은 무엇입니까? mongodb 데이터베이스의 장점은 무엇입니까? Apr 07, 2024 pm 05:21 PM

mongodb 데이터베이스의 장점은 무엇입니까?

mongodb가 생성한 데이터베이스는 어디에 있나요? mongodb가 생성한 데이터베이스는 어디에 있나요? Apr 07, 2024 pm 05:39 PM

mongodb가 생성한 데이터베이스는 어디에 있나요?

몽고디비는 무슨 뜻인가요? 몽고디비는 무슨 뜻인가요? Apr 07, 2024 pm 05:57 PM

몽고디비는 무슨 뜻인가요?

mongodb 데이터베이스 파일은 어디에 있나요? mongodb 데이터베이스 파일은 어디에 있나요? Apr 07, 2024 pm 05:42 PM

mongodb 데이터베이스 파일은 어디에 있나요?

몽고디비를 여는 방법 몽고디비를 여는 방법 Apr 07, 2024 pm 06:15 PM

몽고디비를 여는 방법

See all articles