Window 环境安装MongoDB
- 下载安装 Mongodb
- 设置MongoDB 为wondows服务项( 配置环境变量 d:/MongoDB/bin) wind + R cmd.exe
启动MongoDB
1
mongod --logpath d:/server/mongo/logs/logs.txt --logappend --dbpath d:/server/mongo/data --directoryperdb --serviceName MongoDB -install
参数说明
- –logpath 日志文件地址
- –logappend 添加日志的方式为追加
- –dbpath 指定MongoDB数据存放的路径
- –directoryperdb MongoDB按照数据库的不同,针对每一个数据库都建立一个目录,所谓的“目录每数据库
- –auth 是否使用用户验证
- –serviceName 安装Windows服务时使用的服务名
- –install 安装MongoDB服务
- 启动MongoDB服务 net start MongoDB
- 关闭MongoDB服务 net stop MongoDB
- 使用MongoDB 需要先启动MongoDB 然后 mongo
添加用户和角色
- 添加用户使用db.createUser( user , writeConcern ) 函数使用说明
1 | /** |
登录验证
1 | mongo -u root -p loveme --authenticationDatabase test; |
删除用户
1 | db.system.user.remove({"user": "root"}); |
MongoDB添加库
1 | // 选择库 |
MongoDB添加表
1 | // 添加表 |
MongoDB 数据库操作
新增数据 insert() 和 save()
1 | // 新增数据时'_id' 不赋值默认自带赋值 |
查询 find()
1 | db.collection_name.find() ; |
指定返回指定的列 ( 键 )
1
2
3
4SQL:SELECT `name`,`age` FROM `user` ;
db.user.find({}, {"name": 1, "age": 1}) ;
/* 补充说明:第一个{} 放where条件 第二个{} 指定那些列显示和不显示( 0 不显示 1 显示) */WHERE 条件
1
2
3SQL: SELECT `name`,`age` FROM `user` WHERE `name`='123' ;
db.user.find({"name": "123"}, {"name": 1, "age": 1});使用 AND
1
2
3SQL: SELECT * FROM `user` WHERE `name`='123' AND `age`=21 ;
db.user.find({"name": "123", "age": 21});使用 OR( $or )
1
2
3SQL: SELECT * FROM `user` WHERE `name`='123' OR `age`=21 ;
db.user.find({"$or": [{"name": "123"}, {"age": 18}}]});使用 < <= > >= !=( $lt , $lte , $gt , $gte , $ne )
1
2
3SQL: SELECT * FROM `user` WHERE `id`>1 AND `id`<=3 ;
db.user.find({"_id": {"$gt": 1, "$lte": 3}}) ;使用 IN NOT IN ( $in , $nin )
1
2
3SQL: SELECT * FROM `user` WHERE `id` IN (1,3,5) ;
db.user.find({"_id": {"$in": [1, 2, 5]}});匹配 null
1
2
3SQL: SELECT * FROM `user` WHERE `name` IS NULL ;
db.user.find({"name": null});LIKE模糊查询
1
2
3SQL: SELECT * FROM `user` WHERE `name` LIKE '%123%';
db.user.find({"name": /123/});去掉重复的数据 DISTINCT
1
2
3SQL: SELECT DISTINCT(`name`) FROM `user`;
db.user.distinct("name");统计查询 COUNT
1
2
3
4
5
6
7
8SQL: SELECT COUNT(*) FROM `user`;
/**
* 查询统计条件可以传参数
* db.user.count({"name": "123"});
* db.find({"name": "123"}).count();
*/
db.user.count() ;判断一个元素是否存在 $exists
1
db.td_user.find({"username": {"$exists": true}});
取反 $not
1
db.td_user.find({"username": {"$not": /123/}});
sort()排序条件
1
2// 1 正序 -1 倒序
db.user.find().sort({"_id": -1});查询条数limit();
1
db.user.find().limit(10);
查询5-10间的数据
1
db.user.find().limit(5).skip(5);
16.数组查询(MongoDB特有)1
2
3
4
5
6
7
8
9
10
11
12
13
14
15/**
* skills = ["java", "php", "javascript", "python"] ;
*/
// 找到skills
db.user.find({"skills": "php"});
// $all ** 必须同时包含
db.user.find({"skills": {"$all": ["java", "php"]}});
// $size ** 数组长度等于
db.user.find({"skills": {"$size": 2}});
// $slice **
db.user.find({"skills": {"$slice": [1, 1]}});
修改 update() AND save()
1 | /** |
db.td_user.update({“username”: “123”}, {$set: {“username”: 456}});1
2
2. 全部修改
db.td_user.update({“user”: “test”}, {$set: {“name”: “my-test”}}, false, true);1
2
3. 不存在添加一条
db.td_user.update({“user”: “my-test”}, {$set: {“user”: “test”}}, true, false);1
2
4. 添加所有
db.td_user.update({“user”: “my-test”}, {$set: {“user”: “test”}}, true, true);1
2
5. 全更新了
db.td_user.update({“count”: {$gt: 15}}, {$inc: {“count”: 1}}, false, true);1
2
6. 只更新了第一条
db.td_user.update({“count”: {$gt: 10}}, {$inc: {“count”: 1}}, false, false);1
2
3
4
##### 跟新说明
* $inc 一个数字字段field增加value(数字)
db.td_user.update({“username”: “love”}, {$inc: {“age”: 2}});1
2
* $set 修改值(所有值都支持)
db.td_user.update({“username”: “loveme”}, {$set: {“username”: “mylove”}});1
2
* $unset 删除字段
db.td_user.update({“username”: “mylove”}, {$unset: {“age”: 1}});1
* $push 将值追加到数组中
db.td_user.update({“username”: “mylove”}, {$push: {“age”: 23}});1
2
3
#### 删除和修改数据 remove() AND findAndModify() AND runCommand()
1. remove
/**
- remove( criteria )
- @param object criteria 查询删除的对象
*/
db.user.remove({“_id”: 0});1
2
2. findAndModify
/**
- findAndModify( objNew ) objNew.remove 和 objNew.update 不能同时存在 runCommand()同
- @param objNew.query 查询对象
- @param objNew.sort 排序条件
- @param objNew.update 修改的数据
- @param objNew.remove 是否删除数据
*/
db.user.findAndModify({
query: {“_id”: 1},
sort: {“_id”: -1},
update: {$set: {“username”: “loveme_user”}},
remove: false,
});
for ( var i = 100 ; i< 200 ; i ++ ) {
db.user.save({
“id”: i + 1,
“username”: “loveme“ + i,
“age” : 22
});
}`