设为首页 收藏本站
查看: 1269|回复: 0

[经验分享] Mongodb数据库使用

[复制链接]

尚未签到

发表于 2015-11-11 09:54:48 | 显示全部楼层 |阅读模式
一、启动MongoDB
1.服务器启动方式:


mongod --dbpath=c:\db --logpath=c:\mongo\logs\mongodb.log

dbpath为数据库本地位置  
logpath为日志输出位置(可以省略)



注:本地位置需要手动创建



2.客户端启动方式


mongo localhost:27017
  
27017为服务器端默认启动端口;



3.可以采用更加系统化的配置方式:[linux环境]


cat /etc/mongodb.cnf
dbpath=/data/db/

启动客户端的时候:  


mongod -f /etc/mongodb.cnf

4.Daemon模式启动  



在服务器端启动代码的最后加上 --fork



但是,好像window端无法使用;而且mac上却可以,也许是window不支持;



二、插入记录


a={name:"will"};

如上代码,Mongodb的数据格式类似json,而插入数据的方式如下:  


db.things.save(a);

可以通过下面代码查看数据:  


db.things.find();
  
注:
1.Mongodb在插入数据之前不需要预先创建集合,在第一插入数据时候自动创建(容易出错)
2.可以存储任何结构的数据
3.每次插入的时候都会有一个ID 叫做_id



注:
Mongodb可以采用js的编程语法遍历数据,如下代码:


for(var i=0;i<10;i++)db.things.save({x:4,j:i});
  
可以使用这样的语句插入



三、查询方式
普通查询:
1.


var cursor = db.things.find();
while(cursor.hasNext())printjson(cursor.next());
printjson(cursor[4]);
  
2.


db.things.find().forEach(printjson());
  
3.


var arr = db.things.find().toArray();


  
条件查询:
1.db.things.find({name:&quot;will&quot;})
2.findOne():只返回游标的第一条数据
3.限制limit
db.things.find().limit(4);



四、修改记录


db.things.update({name:&quot;will&quot;},{$set:{name:&quot;will_new&quot;}});
  



五、删除记录


db.things.remove();
  
六、高级查询
1.条件操作符


$lt    <
$lte   <=
$gt    >
$gte   >=
  
例如:db.collection.find({&quot;field&quot;:{$gt:value}});



2.$all 匹配满足所有[]内的数据


db.collection.find({age:{$all:[6,8]}});
  



3.$exists 判断字符是否存在


db.collection.find({age:{$exists:true}});//所有存在age字段的记录
db.collection.find({age:{$exists:false}});//所有不存在age字段的记录
  
4.Null&#20540;处理


db.collection.find({age:null});
  



注:null和不存在不一样;



5.$mod 取模运算


db.collection.find({age:{$mod[6,1]}});//查询age取模6等于1的数据
  
6.$ne 不等于


db.collection.find({age:{$ne:7}});//查询age不等于7的
  
7.$in 包含 $nin 不包含


db.collection.find({age:{$in:[7,8]}});//查询age在7 8之间的
  



8.$size 数组元素个数


{name:&quot;will&quot;,xxx:[1,2,3]};
db.collection.find({xxx:{$size:3}});
  



9.支持正则表达式



10.count 查询记录条数


db.collection.find().count();
db.collection.count();
  
11.skip限制记录起点


db.collection().skip(5).limit(3)
  
12.sort 排列


db.collection().sort({age:1});//升序 asc
db.collection().sort({age:-1});//降序 desc
  



七、游标


for(var i = db.collection.find();c.hasNext();){
c.next();
}
  
八、存储过程
用js支持存储过程,这部分没有学习 就不做总结了























































版权声明:本文为博主原创文章,未经博主允许不得转载。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-137782-1-1.html 上篇帖子: MongoDB数据库更新和删除文档 下篇帖子: node.js操作mongodb数据库(增删查改分页)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表