成功启动MongoDB后,再打开一个命令行窗口输入mongo,就可以进行数据库的一些操作。

输入help可以">

MongoDB基本使用

Jun 07, 2016 pm 04:30 PM
mongodb 사용 시작하다 기초적인 성공 열려 있는

成功启动MongoDB后,再打开一个命令行窗口输入 mongo ,就可以进行数据库的一些操作。 输入help可以看到基本操作命令: show dbs:显示数据库列表 show collections:显示当前数据库中的集合(类似关系数据库中的表) show users:显示用户 use db name:切换

MongoDB基本使用

成功启动MongoDB后,再打开一个命令行窗口输入mongo,就可以进行数据库的一些操作。

输入help可以看到基本操作命令:

show dbs:显示数据库列表
show collections:显示当前数据库中的集合(类似关系数据库中的表)
show users:显示用户

use :切换当前数据库,这和MS-SQL里面的意思一样
db.help():显示数据库操作命令,里面有很多的命令
db.foo.help():显示集合操作命令,同样有很多的命令,foo指的是当前数据库下,一个叫foo的集合,并非真正意义上的命令
db.foo.find():对于当前数据库中的foo集合进行数据查找(由于没有条件,会列出所有数据)
db.foo.find( { a : 1 } ):对于当前数据库中的foo集合进行查找,条件是数据中有一个属性叫a,且a的值为1

MongoDB没有创建数据库的命令,但有类似的命令。

如:如果你想创建一个“myTest”的数据库,先运行use myTest命令,之后就做一些操作(如:db.createCollection('user')),这样就可以创建一个名叫“myTest”的数据库。

数据库常用命令

1、Help查看命令提示

help

 db.help();

 db.yourColl.help();

 db.youColl.find().help();

 rs.help();

2、切换/创建数据库

use yourDB;  当创建一个集合(table)的时候会自动创建当前数据库

3、查询所有数据库

show dbs;

4、删除当前使用数据库

db.dropDatabase();

5、从指定主机上克隆数据库

db.cloneDatabase(“127.0.0.1”); 将指定机器上的数据库的数据克隆到当前数据库

6、从指定的机器上复制指定数据库数据到某个数据库

db.copyDatabase("mydb", "temp", "127.0.0.1");将本机的mydb的数据复制到temp数据库中

7、修复当前数据库

db.repairDatabase();

8、查看当前使用的数据库

db.getName();

db; db和getName方法是一样的效果,都可以查询当前使用的数据库

9、显示当前db状态

db.stats();

10、当前db版本

db.version();

11、查看当前db的链接机器地址

db.getMongo();

Collection聚集集合

1、创建一个聚集集合(table

db.createCollection(“collName”, {size: 20, capped: 5, max: 100});

2、得到指定名称的聚集集合(table

db.getCollection("account");

3、得到当前db的所有聚集集合

db.getCollectionNames();

4、显示当前db所有聚集索引的状态

db.printCollectionStats();

用户相关

1、添加一个用户

db.addUser("name");

db.addUser("userName", "pwd123", true); 添加用户、设置密码、是否只读

2、数据库认证、安全模式

db.auth("userName", "123123");

3显示当前所有用户

show users;

4、删除用户

db.removeUser("userName");

其他

1、查询之前的错误信息

db.getPrevError();

2、清除错误记录

db.resetError();

查看聚集集合基本信息

1、查看帮助 ?db.yourColl.help();
로그인 후 복사
2、查询当前集合的数据条数 ?db.yourColl.count();
로그인 후 복사
3、查看数据空间大小 db.userInfo.dataSize();
로그인 후 복사
4、得到当前聚集集合所在的db db.userInfo.getDB();
로그인 후 복사
5、得到当前聚集的状态 db.userInfo.stats();
로그인 후 복사
6、得到聚集集合总大小 db.userInfo.totalSize();
로그인 후 복사
7、聚集集合储存空间大小 db.userInfo.storageSize();
로그인 후 복사
8、Shard版本信息 ?db.userInfo.getShardVersion()
로그인 후 복사
9、聚集集合重命名 db.userInfo.renameCollection("users"); 将userInfo重命名为users
로그인 후 복사
10、删除当前聚集集合 db.userInfo.drop();
로그인 후 복사

聚集集合查询

1、查询所有记录
로그인 후 복사
db.userInfo.find();
로그인 후 복사
相当于:select* from userInfo;
로그인 후 복사
默认每页显示20条记录,当显示不下的情况下,可以用it迭代命令查询下一页数据。注意:键入it命令不能带“;”
로그인 후 복사
但是你可以设置每页显示数据的大小,用DBQuery.shellBatchSize= 50;这样每页就显示50条记录了。
로그인 후 복사
2、查询去掉后的当前聚集集合中的某列的重复数据
로그인 후 복사
db.userInfo.distinct("name");
로그인 후 복사
会过滤掉name中的相同数据
로그인 후 복사
相当于:select distict name from userInfo;
로그인 후 복사
3、查询age = 22的记录
로그인 후 복사
db.userInfo.find({"age": 22});
로그인 후 복사
相当于: select * from userInfo where age = 22;
로그인 후 복사
4、查询age > 22的记录
로그인 후 복사
db.userInfo.find({age: {$gt: 22}});
로그인 후 복사
相当于:select * from userInfo where age >22;
로그인 후 복사
5、查询age <pre class="brush:php;toolbar:false">db.userInfo.find({age: {$lt: 22}});
로그인 후 복사
相当于:select * from userInfo where age <pre class="brush:php;toolbar:false">6、查询age >= 25的记录
로그인 후 복사
db.userInfo.find({age: {$gte: 25}});
로그인 후 복사
相当于:select * from userInfo where age >= 25;
로그인 후 복사
7、查询age <pre class="brush:php;toolbar:false">db.userInfo.find({age: {$lte: 25}});
로그인 후 복사
8、查询age >= 23 并且 age <pre class="brush:php;toolbar:false">db.userInfo.find({age: {$gte: 23, $lte: 26}});
로그인 후 복사
9、查询name中包含 mongo的数据
로그인 후 복사
db.userInfo.find({name: /mongo/});
로그인 후 복사
//相当于%%
로그인 후 복사
select * from userInfo where name like ‘%mongo%’;
로그인 후 복사
10、查询name中以mongo开头的
로그인 후 복사
db.userInfo.find({name: /^mongo/});
로그인 후 복사
select * from userInfo where name like ‘mongo%’;
로그인 후 복사
11、查询指定列name、age数据
로그인 후 복사
db.userInfo.find({}, {name: 1, age: 1});
로그인 후 복사
相当于:select name, age from userInfo;
로그인 후 복사
当然name也可以用true或false,当用ture的情况下河name:1效果一样,如果用false就是排除name,显示name以外的列信息。
로그인 후 복사
12、查询指定列name、age数据, age > 25
로그인 후 복사
db.userInfo.find({age: {$gt: 25}}, {name: 1, age: 1});
로그인 후 복사
相当于:select name, age from userInfo where age >25;
로그인 후 복사
13、按照年龄排序
로그인 후 복사
升序:db.userInfo.find().sort({age: 1});
로그인 후 복사
降序:db.userInfo.find().sort({age: -1});
로그인 후 복사
14、查询name = zhangsan, age = 22的数据
로그인 후 복사
db.userInfo.find({name: 'zhangsan', age: 22});
로그인 후 복사
相当于:select * from userInfo where name = ‘zhangsan’ and age = ‘22’;
로그인 후 복사
15、查询前5条数据
로그인 후 복사
db.userInfo.find().limit(5);
로그인 후 복사
相当于:selecttop 5 * from userInfo;
로그인 후 복사
16、查询10条以后的数据
로그인 후 복사
db.userInfo.find().skip(10);
로그인 후 복사
相当于:select * from userInfo where id not in (
로그인 후 복사
selecttop 10 * from userInfo
로그인 후 복사
);
로그인 후 복사
17、查询在5-10之间的数据
로그인 후 복사
db.userInfo.find().limit(10).skip(5);
로그인 후 복사
可用于分页,limit是pageSize,skip是第几页*pageSize
로그인 후 복사
18、or与 查询
로그인 후 복사
db.userInfo.find({$or: [{age: 22}, {age: 25}]});
로그인 후 복사
相当于:select * from userInfo where age = 22 or age = 25;
로그인 후 복사
19、查询第一条数据
로그인 후 복사
db.userInfo.findOne();
로그인 후 복사
相当于:selecttop 1 * from userInfo;
로그인 후 복사
db.userInfo.find().limit(1);
로그인 후 복사
20、查询某个结果集的记录条数
로그인 후 복사
db.userInfo.find({age: {$gte: 25}}).count();
로그인 후 복사
相当于:select count(*) from userInfo where age >= 20;
로그인 후 복사
21、按照某列进行排序
로그인 후 복사
db.userInfo.find({sex: {$exists: true}}).count();
로그인 후 복사
相当于:select count(sex) from userInfo;
로그인 후 복사
索引
1、创建索引
로그인 후 복사
db.userInfo.ensureIndex({name: 1});
로그인 후 복사
db.userInfo.ensureIndex({name: 1, ts: -1});
로그인 후 복사
2、查询当前聚集集合所有索引
로그인 후 복사
db.userInfo.getIndexes();
로그인 후 복사
3、查看总索引记录大小
로그인 후 복사
db.userInfo.totalIndexSize();
로그인 후 복사
4、读取当前集合的所有index信息
로그인 후 복사
db.users.reIndex();
로그인 후 복사
5、删除指定索引
로그인 후 복사
db.users.dropIndex("name_1");
로그인 후 복사
6、删除所有索引索引
로그인 후 복사
db.users.dropIndexes();
로그인 후 복사

修改、添加、删除集合数据

1、添加
로그인 후 복사
db.users.save({name: ‘zhangsan’, age: 25, sex: true});
로그인 후 복사
添加的数据的数据列,没有固定,根据添加的数据为准
로그인 후 복사
2、修改
로그인 후 복사
db.users.update({age: 25}, {$set: {name: 'changeName'}}, false, true);
로그인 후 복사
相当于:update users set name = ‘changeName’ where age = 25;
로그인 후 복사
db.users.update({name: 'Lisi'}, {$inc: {age: 50}}, false, true);
로그인 후 복사
相当于:update users set age = age + 50 where name = ‘Lisi’;
로그인 후 복사
db.users.update({name: 'Lisi'}, {$inc: {age: 50}, $set: {name: 'hoho'}}, false, true);
로그인 후 복사
相当于:update users set age = age + 50, name = ‘hoho’ where name = ‘Lisi’;
로그인 후 복사
3、删除
로그인 후 복사
db.users.remove({age: 132});
로그인 후 복사
4、查询修改删除
로그인 후 복사
db.users.findAndModify({
로그인 후 복사
    query: {age: {$gte: 25}}, 
로그인 후 복사
로그인 후 복사
    sort: {age: -1}, 
로그인 후 복사
로그인 후 복사
    update: {$set: {name: 'a2'}, $inc: {age: 2}},
로그인 후 복사
로그인 후 복사
    remove: true
로그인 후 복사
로그인 후 복사
});
로그인 후 복사
로그인 후 복사
db.runCommand({ findandmodify : "users", 
로그인 후 복사
    query: {age: {$gte: 25}}, 
로그인 후 복사
로그인 후 복사
    sort: {age: -1}, 
로그인 후 복사
로그인 후 복사
    update: {$set: {name: 'a2'}, $inc: {age: 2}},
로그인 후 복사
로그인 후 복사
    remove: true
로그인 후 복사
로그인 후 복사
});
로그인 후 복사
로그인 후 복사
update 或 remove 其中一个是必须的参数; 其他参数可选。
로그인 후 복사
参数详解默认值query查询过滤条件{} sort如果多个文档符合查询过滤条件,将以该参数指定的排列方式选择出排在首位的对象,该对象将被操作{} remove若为true,被选中对象将在返回前被删除N/A update一个 修改器对象N/A new若为true,将返回修改后的对象而不是原始对象。在删除操作中,该参数被忽略。false fields参见Retrieving a Subset of Fields (1.5.0+) All fields upsert创建新对象若查询结果为空。 示例 (1.5.4+) false 
로그인 후 복사
语句块操作
1、简单Hello World
로그인 후 복사
print("Hello World!");
로그인 후 복사
这种写法调用了print函数,和直接写入"Hello World!"的效果是一样的;
로그인 후 복사
2、将一个对象转换成json
로그인 후 복사
tojson(new Object());
로그인 후 복사
tojson(new Object('a'));
로그인 후 복사
3、循环添加数据
로그인 후 복사
> for (vari= 0;i<pre class="brush:php;toolbar:false">... db.users.save({name: "u_" + i, age: 22 + i, sex: i % 2});
로그인 후 복사
... };
로그인 후 복사
这样就循环添加了30条数据,同样也可以省略括号的写法
로그인 후 복사
> for (vari= 0;i<pre class="brush:php;toolbar:false">也是可以的,当你用db.users.find()查询的时候,显示多条数据而无法一页显示的情况下,可以用it查看下一页的信息;
로그인 후 복사
4、find 游标查询
로그인 후 복사
>varcursor = db.users.find();
로그인 후 복사
> while (cursor.hasNext()) { 
로그인 후 복사
    printjson(cursor.next()); 
로그인 후 복사
}
로그인 후 복사
这样就查询所有的users信息,同样可以这样写
로그인 후 복사
로그인 후 복사
로그인 후 복사
while (cursor.hasNext()) { printjson(cursor.next); }
로그인 후 복사
同样可以省略{}号
로그인 후 복사
5、forEach迭代循环
로그인 후 복사
db.users.find().forEach(printjson);
로그인 후 복사
forEach中必须传递一个函数来处理每条迭代的数据信息
로그인 후 복사
6、将find游标当数组处理
로그인 후 복사
로그인 후 복사
로그인 후 복사
cursor[4];
로그인 후 복사
取得下标索引为4的那条数据
로그인 후 복사
既然可以当做数组处理,那么就可以获得它的长度:cursor.length();或者cursor.count();
로그인 후 복사
那样我们也可以用循环显示数据
로그인 후 복사
for (vari = 0, len = c.length(); i<len printjson><pre class="brush:php;toolbar:false">7、将find游标转换成数组
로그인 후 복사
>var arr = db.users.find().toArray();
로그인 후 복사
> printjson(arr[2]);
로그인 후 복사
用toArray方法将其转换为数组
로그인 후 복사
8、定制我们自己的查询结果
로그인 후 복사
只显示age <pre class="brush:php;toolbar:false">db.users.find({age: {$lte: 28}}, {age: 1}).forEach(printjson);
로그인 후 복사
db.users.find({age: {$lte: 28}}, {age: true}).forEach(printjson);
로그인 후 복사
排除age的列
로그인 후 복사
db.users.find({age: {$lte: 28}}, {age: false}).forEach(printjson);
로그인 후 복사
9、forEach传递函数显示信息
로그인 후 복사
db.things.find({x:4}).forEach(function(x) {print(tojson(x));});
로그인 후 복사


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

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

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

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

비트겟 런치풀이란? Bitget 런치풀은 어떻게 사용하나요? 비트겟 런치풀이란? Bitget 런치풀은 어떻게 사용하나요? Jun 07, 2024 pm 12:06 PM

BitgetLaunchpool은 모든 암호화폐 애호가를 위해 설계된 동적 플랫폼입니다. BitgetLaunchpool은 독특한 제품으로 돋보입니다. 여기에서 토큰을 스테이킹하여 에어드랍, 높은 보상, 초기 참가자에게만 제공되는 넉넉한 상금 풀 등 더 많은 보상을 잠금 해제할 수 있습니다. BitgetLaunchpool이란 무엇인가요? BitgetLaunchpool은 사용자 친화적인 이용 약관에 따라 토큰을 스테이킹하고 획득할 수 있는 암호화폐 플랫폼입니다. Launchpool에 BGB 또는 기타 토큰을 투자함으로써 사용자는 무료 에어드랍, 수익을 받고 넉넉한 보너스 풀에 참여할 수 있는 기회를 갖게 됩니다. 담보자산의 수입은 T+1시간 이내에 계산되며, 보상은 다음을 기준으로 합니다.

net4.0의 용도는 무엇입니까 net4.0의 용도는 무엇입니까 May 10, 2024 am 01:09 AM

.NET 4.0은 다양한 애플리케이션을 만드는 데 사용되며 객체 지향 프로그래밍, 유연성, 강력한 아키텍처, 클라우드 컴퓨팅 통합, 성능 최적화, 광범위한 라이브러리, 보안, 확장성, 데이터 액세스 및 모바일을 포함한 풍부한 기능을 애플리케이션 개발자에게 제공합니다. 개발 지원.

데비안에서 MongoDB 자동 확장을 구성하는 방법 데비안에서 MongoDB 자동 확장을 구성하는 방법 Apr 02, 2025 am 07:36 AM

이 기사는 데비안 시스템에서 MongoDB를 구성하여 자동 확장을 달성하는 방법을 소개합니다. 주요 단계에는 MongoDB 복제 세트 및 디스크 공간 모니터링 설정이 포함됩니다. 1. MongoDB 설치 먼저 MongoDB가 데비안 시스템에 설치되어 있는지 확인하십시오. 다음 명령을 사용하여 설치하십시오. sudoaptupdatesudoaptinstall-imongb-org 2. MongoDB Replica 세트 MongoDB Replica 세트 구성은 자동 용량 확장을 달성하기위한 기초 인 고 가용성 및 데이터 중복성을 보장합니다. MongoDB 서비스 시작 : sudosystemctlstartMongodsudosys

데비안에서 MongoDB의 고 가용성을 보장하는 방법 데비안에서 MongoDB의 고 가용성을 보장하는 방법 Apr 02, 2025 am 07:21 AM

이 기사는 데비안 시스템에서 고도로 사용 가능한 MongoDB 데이터베이스를 구축하는 방법에 대해 설명합니다. 우리는 데이터 보안 및 서비스가 계속 운영되도록하는 여러 가지 방법을 모색 할 것입니다. 주요 전략 : ReplicaSet : ReplicaSet : 복제품을 사용하여 데이터 중복성 및 자동 장애 조치를 달성합니다. 마스터 노드가 실패하면 복제 세트는 서비스의 지속적인 가용성을 보장하기 위해 새 마스터 노드를 자동으로 선택합니다. 데이터 백업 및 복구 : MongoDump 명령을 정기적으로 사용하여 데이터베이스를 백업하고 데이터 손실의 위험을 처리하기 위해 효과적인 복구 전략을 공식화합니다. 모니터링 및 경보 : 모니터링 도구 (예 : Prometheus, Grafana) 배포 MongoDB의 실행 상태를 실시간으로 모니터링하고

MongoDB 데이터베이스 비밀번호를 보는 Navicat의 방법 MongoDB 데이터베이스 비밀번호를 보는 Navicat의 방법 Apr 08, 2025 pm 09:39 PM

해시 값으로 저장되기 때문에 MongoDB 비밀번호를 Navicat을 통해 직접 보는 것은 불가능합니다. 분실 된 비밀번호 검색 방법 : 1. 비밀번호 재설정; 2. 구성 파일 확인 (해시 값이 포함될 수 있음); 3. 코드를 점검하십시오 (암호 하드 코드 메일).

Pi Coin의 주요 업데이트 : Pi Bank가오고 있습니다! Pi Coin의 주요 업데이트 : Pi Bank가오고 있습니다! Mar 03, 2025 pm 06:18 PM

Pinetwork는 혁신적인 모바일 뱅킹 플랫폼 인 Pibank를 출시하려고합니다! Pinetwork는 오늘 Pibank라고 불리는 Elmahrosa (Face) Pimisrbank에 대한 주요 업데이트를 발표했습니다. Pibank는 Pinetwork Cryptocurrency 기능을 완벽하게 통합하여 화폐 통화 및 암호 화폐의 원자 교환을 실현합니다 (US Dollar, Indones rupiah, indensian rupiah and with rupiah and and indensian rupiah and rupiah and and Indones rupiah and rupiahh and rupiah and rupiah and rupiah and rupiah and rupiah and rupiah and rupiah cherrenciance) ). Pibank의 매력은 무엇입니까? 알아 보자! Pibank의 주요 기능 : 은행 계좌 및 암호 화폐 자산의 원 스톱 관리. 실시간 거래를 지원하고 생물학을 채택하십시오

Boqike Firefly EDC Walking Light 검토: 풍부한 애플리케이션 시나리오, 다양한 사용 모드 전환 Boqike Firefly EDC Walking Light 검토: 풍부한 애플리케이션 시나리오, 다양한 사용 모드 전환 Aug 14, 2024 pm 09:34 PM

오늘 우리는 Boqike Firefly EDC 여행용 조명에 대한 리뷰를 가져왔습니다. Boqike는 VSGO의 새로운 브랜드이기도 합니다. 브랜드의 핵심 컨셉은 "Need to Breath"로, 자연에 대한 무한한 사랑과 자유에 대한 갈망을 표현합니다. Boqike Firefly EDC 여행용 조명은 9월 VSGO Tmall 플래그십 스토어에 출시될 예정입니다. Boqike Firefly EDC 여행용 조명의 핵심 매개변수: 배터리 용량: 750mAh 밝기(lm): 고급 120루멘, 최저 20루멘 출력 전력(w): 2.5W 색 온도: 4000K 고휘도 배터리 수명: 5.5h 저휘도 배터리 수명: 55시간 충전 전압/전류: 5V/1A 충전 시간: 2.5시간 충전/전원 공급 포트: US

MongoDB 인덱스를 정렬하는 방법 MongoDB 인덱스를 정렬하는 방법 Apr 12, 2025 am 08:45 AM

정렬 색인은 특정 필드 별 컬렉션의 문서를 정렬 할 수있는 MongoDB 인덱스 유형입니다. 정렬 색인을 만들면 추가 분류 작업없이 쿼리 결과를 빠르게 정렬 할 수 있습니다. 장점에는 빠른 정렬, 쿼리 재정의 및 주문형 정렬이 포함됩니다. 구문은 db.collection.createIndex ({field : & lt; sort order & gt;}), 여기서 & lt; sort order & gt; 1 (오름차순 순서) 또는 -1 (하강 순서)입니다. 여러 필드를 정렬하는 멀티 필드 분류 인덱스를 만들 수도 있습니다.

See all articles