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
执行 “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