MongoDB新手学习笔记

MongoDB 是由C++语言编写的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。

MongoDB 将数据存储为一个文档。MongoDB是一个基于分布式文件存储的数据库。

将MongoDB服务器作为Windows服务运行:

mongod --bind_ip yourIPadress --logpath "C:\data\dbConf\mongodb.log" --logappend --dbpath "C:\data\db" --port yourPortNumber --serviceName "YourServiceName" --serviceDisplayName "YourServiceName" --install
“show dbs” 命令可以显示所有数据的列表。

执行 “db” 命令可以显示当前数据库对象或者集合。

运行”use”命令,可以连接到一个指定的数据库。

文档是mongodb中的最核心的概念,是其核心单元,我们可以将文档类比成关系型数据库中的每一行数据。

多个键及其关联的值有序的放置在一起就是文档。在mongodb中使用一种类json的bson存储数据。

bson数据可以理解为在json的基础上添加了一些json中没有的数据类型。

使用用户名和密码连接到MongoDB服务器,你必须使用 ‘username:password@hostname/dbname’ 格式,’username’为用户名,’password’ 为密码。

mongodb://mongo_admin:AxB6_w3r@localhost/
一、权限管理常用命令

1. #进入数据库admin
use admin

2. #增加或修改用户密码

db.createUser('name','pwd')

3. #查看用户列表

db.system.users.find()

4. #用户认证

db.auth('name','pwd')

这一个返回1就认证成功了,只有认证成功才能对数据库进行操作

5. #删除用户

db.dropUser('name')

6. #查看所有用户

show users

7. #查看所有数据库

show dbs

8. #查看所有的collection

show collections

9. #查看各collection的状态

db.printCollectionStats()

10. #查看主从复制状态

db.printReplicationInfo()

二、MongoDB数据库的创建和删除

MongoDB创建数据库完全可以使用use;如:use mydb;

插入语句:

db.user.insert({name:'tompig'});

show collections; —查看‘表’
show dbs —查看库

mongodb 删除数据库 db.dropDatabase();
mongodb删除表 db.mytable.drop();

三、MongoDB数据库的操作

数据插入操作 db.table.insert({name:”xxx”,age: 23}); 说明:如果表table不存在 则自动创建。
查询所有数据:db.table.find();
按条件查询:db.table.find({name:”xxx”});
查询统计:db.table.count() or db.table.find().count();
按条件查询统计:db.table.find({name:”xxx”}).count();
查询固定条数记录:db.table.find().skip(1).limit(2); 从第二条开始查询2 条记录。
in 条件查询:db.table.find({age:{$in:[23,30]}});
排序查询: db.table.find().sort({age:-1}); -1表从大到小排序,即降序(desc);1表升序(asc)
db.table.find(‘this.age>”31″‘,{name:1}); 等同于 SELECT name FROM user WHERE age > 30

删除所有数据:db.table.remove();
删除一条符合条件的记录:
(1) db.table.remove({age:”22″});
(2) db.table.remove({age:{$lt:”25″}}); 删除age 小于25 的记录
说明:
$gt : > –(Greater than 的首字母)
$gte : >= –(Greater than or equal 的首字母)
$lt :< –(Less than 的首字母)
$lte :<= –(Less than or equal 的首字母) $ne : != –(Not equal 的首字母) 数据更新操作 更新一条数据 db.table.update({name:”aaa”},{$set:{age:24}}); 等同于sql 的: update table set age=24 where name=”aaa”; distinct去掉重复值 db.table.distinct(name,{age:{$gt:”30″}}); 等同mysql的:select distinct name from table where age>30