MongoDB 极简实践入门

原作者StevenSLXie;
原链接(https://github.com/StevenSLXie/Tutorials-for-Web-Developers/blob/master/MongoDB 极简实践入门.md);
MongoDB的数据是用JSON(Javascript Object Notation)存储的(就是上面的这种key-value的形式),而几乎所有的web应用都是基于Javascript的。因此,存储的数据和应用的数据的格式是高度一致的,不需经过转换


use tutorial//**新建**一个叫做tutorial的数据库,没有也可以use,就是直接新建
show databases//显示当前数据库
db.createCollection('movie')//创建一个叫电影的集合
show collections    //显示集合
db.movie.insert({})//插入数据
// 1. 不同key-value需要用逗号隔开,而key:value中间是用冒号;
// 2. 如果一个key有多个value,value要用[]。哪怕当前只有一个value,也加上[]以备后续的添加;
// 3. 整个“数据块”要用{}括起来
// 4.如果你在insert之后看到WriteResult({ "nInserted" : 1 })
db.movie.find().pretty() //列出数据库中的数据
db.movie.insert([{ITEM1},{ITEM2}]) //批量插入数据
db.movie.find({'key':'value','key':'value'}).pretty //查找任何key-value,两个条件之间是and 关系
db.movie.find({$or:[{'key':'value'},{'key':'value'}]}).pretty() //条件之间是或的关系
db.movie.find({'likes':{$gt:5000}}).pretty()//大于
db.movie.find({'likes':{$lt:5000}}).pretty() //小于
// $lte:小于或等于;$gte:大于或等于;$ne:不等于
db.movie.findOne({'key':'value'})//确切知道返回结果只有一个时使用
db.movie.find().limit(2).skip(1).pretty()//结果很多但是只想显示其中一部分
db.movie.find({'tags':'drama'},{'debut':1,'title':1}).pretty()//局部查询,1表示返回,0表示不返回
db.movie.find({'tags':'drama'},{'debut':1,'title':1,'_id':0}).pretty()//不想输出_id时需要显式地声明
db.movie.update({title:'Seven'}, {$inc:{likes:2}})//增量更新
db.movie.update({}, {$inc:{likes:10}},{multi:true})//多个同时增量更新
db.movie.update({'title':'Seven'}, {$push:{'tags':'popular'}}) //增加一个标签
db.movie.remove({'tag':'romance'})//删除
db.movie.remove({'tag':'romance'},1)//删除第一个
db.movie.remove() //删除movie集合下的所有文档
db.movie.ensueIndex({key:1}) //加索引,1是升序,-1是降序
db.movie.find().sort({'title':1}).pretty() //按名字排序
db.movie.getIndexes()//所有的索引, 包括其名字
db.movie.dropIndex('index_name') //删除对应的索引
db.movie.update({title:'Seven'},{$set:{grade:1}}) //加虚拟分级
db.movie.aggregate([{$group:{_id:'$directed_by'}}]) //按照导演名字进行聚合
db.movie.aggregate({$group:{_id:'$directed_by',num_movie:{$sum:1}}})//找出每个导演的电影数
db.movie.aggregate({$group:{_id:'$directed_by',num_likes:{$sum:'$likes'}}})//每个导演被点赞的数量
db.movie.findAndModity({query:{'key':'value'},update:{$inc:{likes:10}}}) //原子化操作:query是查找出匹配的文档,和find是一样的,而update则是更新likes这个项目。如果query出多于一个文档,则只会对第一个文档进行操作
db.movie.endureIndex({title:'text'})//文本搜索:先对要搜索的key 建立一个text 索引
db.movie.find({$text:{$search:':gump'}}).pretty()//然后对标题进行文本搜索
db.movie.find({title:{$regex:'.*b$'}}).pretty()//正则表达式查询:查找标题一b结尾的电影
db.movie.find({title:/.*b$/}).pretty()
db.movie.find({title:/Fight/}).pretty()//查找含有fight标题的电影
db.movie.find({title:{title:{$regex:'fight.*b',$options:'$i'}}}).pretty()//不分大小写查找

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值