MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案,主要介绍MongoDB数据库增删改查操作及常用命令。
Mongodb-入门命令
启动Mongodb数据库D:\MongoDB\bin>mongod --dbpath d:\MongoDB\data\db
首先连接Mongodb数据库./bin/mongo
use databaseName 选库
show tables/collections 查看当前库下的collection
如何创建库
Mongodb的库是隐式创建,你可以use 一个不存在的库
然后在该库下创建collection,即可创建库// 创建user
db.createCollection("user")
// collection允许隐式创建
Db.collectionName.insert(document);
删除collection/databasedb.collectionName.drop();
db.dropDatabase();
查询所有数据库show dbs;
查看当前使用的数据库db.getName();
db;
显示当前db状态db.stats();
当前db版本db.version();
修复当前数据库db.repairDatabase();
Mongodb-CURD操作
Mongodb-增加(insert())
mongodb存储的是文档,文档是json格式的对象db.user.insert({_id:'1',name:"xiaozhang"});
db.user.insert({_id:"2",name:"wukong3",sex:"男",age:90});
Mongodb-删除(remove())db.user.remove({_id:"1"});
删除user表中age属性为20的文档,只删除1行db.user.remove({age:’20’,true});
注意
1: 查询表达式依然是个json对象
2: 查询表达式匹配的行,将被删掉.
3: 如果不写查询表达式,collections中的所有文档将被删掉.
Mongodb-修改(update())
$set修改某列的值db.user.update({name:"xiaoxiao"},{$set:{name:"xiaozhang"}});
$rename 重命名某个列db.user.update({name:'wukong2'},{
$rename:{name:'usernaem'}, //重命名某个列
$inc:{age:30} //增长某个列
});
修改时的赋值表达式
$set 修改某列的值
$unset 删除某个列
$rename 重命名某个列
$inc 增长某个列
$setOnInsert 当upsert为true时,并且发生了insert操作时,可以补充的字段.
upsert:是指没有匹配的行,则直接插入该行.(和mysql中的replace一样)db.user.update({username:"xiaoxiao"},{$set:{username:'xiaosan'}},{upsert:true});
multi: 是指修改多行(即使查询表达式命中多行,默认也只改1行,如果想改多行,可以用此选项)db.user.update({age:90},{$set:{age:22}},{multi:true});
Mongodb-查询知识
注:以下查询基于ecshop网站的商品表(ecs_goods)
在练习时可以只取部分列,方便查看.
查询运算符(mongodbvs mysql)$gt >
$gte >=
$in in
$lt <
$lte <=
$ne !=
$nin not in
$all 无对应项,指数组所有单元匹配
$or or
$and and
$not not
查询主键为32的商品db.goods.find({goods_id:32});
查询不属于第3个栏目的商品{$ne}db.goods.find({cat_id:{$ne:3}},{cat_id:1,goods_id:1,goods_name:1});
本店价格高于3000元的商品{$gt}db.goods.find({shop_price:{$gt:3000}},{goods_id:1,goods_name:1,shop_price:1});
查询小于等于100的商品db.goods.find({shop_price:{$lte:100}},{goods_id:1,goods_name:1,shop_price:1});
取出第4栏目和第11栏目下的商品($in)db.goods.find({cat_id:{$in:[4,11]}},{cat_id:1,goods_id:1,goods_name:1});
取出价格大于100小于500的商品($and)db.goods.find({$and:[{shop_price:{$gt:100}},{shop_price:{$lt:500}}]},{goods_name:1,shop_price:1});
取出不属于第3栏目且不属于第11栏目的商品($and $nin和$nor分别实现)db.goods.find({$and:[{cat_id:{$ne:3}},{cat_id:{$ne:11}}]},{cat_id:1,goods_name:1});
db.goods.find({cat_id:{$nin:[3,11]}},{cat_id:1,goods_name:1});
db.goods.find({$nor:[{cat_id:3},{cat_id:11}]},{cat_id:1,goods_name:1});
Mongodb查询-元素运算符$exists 某列存在则为真
$mod 满足某求余条件则为真
$type 数据为某类型则为真
取出goods_id%5 == 1, 即,1,6,11,..这样的商品db.goods.find({goods_id:{$mod:[5,1]}},{goods_id:1,goods_name:1});
取出有age属性的文档db.user.find({age:{$exists:1}},{username:1,age:1});
MongoDB数据库增删改查操作及常用命令就介绍在这里,想深入学习的同学可以到MongoDB官网上看一下MongoDB的文档