微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MongoDB基础笔记

MongoDB

show dbs 查看当前的数据库 use test 选库 show tables/collections 查看当前库下的文档 db.help() 查看帮助 db.createCollection('user'); 显式的创建文档'user' db.goods.insert({_id:1,name:'NOKIA',price:29.9}); 隐式创建文档'goods'并插入数据 db.goods.drop(); 删除goods文档 db.dropDatabase(); 删除数据库   增加多个文档: db.collectionName.insert([ {time:'friday',study:'mongodb'}, {_id:9,gender:'male',name:'QQ'} ]) 删除stu表中sn属性值为001的文档: db.stu.remove({sn:’001’}); 删除stu表中gender属性为m的文档,只删除1行: db.stu.remove({gender:'m'},true); 删除stu表中的所有数据: db.stu.remove({});   修改文档的某列:db.news.update({name: 'QQ'},{$set:{name: 'MSN'}}); 执行多种修改操作: db.stu.update({name:'wukong'}, { $set:{name:'dzsf'}, $unset:{jingu:1}, $rename:{sex:'gender'}, $inc:{age:16} });   查询所有文档 所有内容: db.stu.find(); 查询所有文档的gender属性: db.stu.find({},{gender:1}); 查看记录总条数: db.goods.find().count()   比较运算符:$gt(>),$gte(>=),$in(in),$lt(<),$lte(<=),$ne(!=),$nin(not in),$all.   查询主键为32的商品:db.goods.find({goods_id:32}); 查询shop_price大于3的相关记录:db.goods.find({shop_price:{$gt:3}},{goods_id:1,goods_name:1,_id:0} 取出价格介于100到500之间的商品($and):db.goods.find({$and:[{shop_price:{$gt:100}},{shop_price:{$lt:500}}]} , {goods_name:1,shop_price:1,_id:0}   元素运算符:$exists(某列存在为真),$mod(满足某求余条件为真),$type(数据为某类型为真)。 取出%5=1即1,6,11,..的数据:db.goods.find({goods_id:{$mod:[5,1]}},{goods_id:1,goods_name:1,_id:0}); 查询出含有age字段的文档:db.stu.find({age:{$exists:1}})   【游标操作】 1.在Mongodb中一次性插入10000条数据,像使用js一样的for循环操作: for(var i=0;i<10000;i++){ db.bar.insert({_id:i+1,title:'hello'+i,cnt:'aaa'+i}); };   2.声明游标(取出的是json格式): printjson(db.bar.find({_id:{$lte:5}}).next());   3.用while循环来打印游标,避免一个一个的手动操作。 while(db.bar.find({_id:{$lte:5}}).hasNext()) { printjson(mycursorr.next()); }   4.用for循环来打印游标,更简单。 for(var cursor=db.bar.find({_id:{$lte:5}});cursor.hasNext();) { printjson(cursor.next()); }   5.游标的迭代函数forEach,自定义回调函数来逐个处理每个单元. var mycursor = db.bar.find({_id:{$lte:5}}); mycursor.forEach(function(obj){printjson(obj)});   6.游标在分页的应用:从第9000条开始取10条数据: db.bar.find().skip(9000).limit(10);   【索引】 查询计划:db.stu.find({sn:99}).explain(); 创建单列索引: db.stu.ensureIndex({sn:1}); #1是升续,2是降续。 查看所有索引: db.stu.getIndexes(); 删除单个索引:db.stu.dropIndex({sn:1/-1}); 删除所有索引:db.stu.dropIndexes(); 创建多列索引:db.stu.ensureIndex({sn:1,name:1}); 创建子文档索引:db.stu.ensureIndex({filed.subfield:1/-1}); 查询子文档索引:db.stu.find({filed.subfield:1/-1}); 创建唯一索引:db.tea.ensureIndex({email:1},{unique:true}); 创建稀疏索引:db.tea.ensureIndex({email:1},{sparse:true}); 创建哈希索引:db.tea.ensureIndex({email:'hashed'}); 重建索引:db.tea.reIndex();   【用户管理】 添加用户:db.addUser(用户名,密码,是否只读) 执行认证:db.auth(用户名,密码); 修改用户密码:db.changeUserPassword(用户名, 新密码); 删除用户:db.removeUser(用户名);   【导出与导入】 mongoexport 导出json和csv格式的文件。 mongoimport 导入json和csv mongodump 导出二进制bson结构的数据及其索引信息 mongorestore 导入二进制文件

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐