当前位置: 首页 > news >正文

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 导入二进制文件

转载于:https://www.cnblogs.com/rxbook/p/10912812.html

相关文章:

  • 职位相关的名词解释汇总,逐步更新
  • 我理解的原型模式
  • BZOJ-1497 最大获利
  • 【原创】如何写一个框架:步骤(上)
  • 深入理解JS执行上下文的点点滴滴
  • MySQL索引原理及慢查询优化,了解一下?
  • [BZOJ 3282] Tree 【LCT】
  • npm script 一见钟情
  • 团队项目之典型用户
  • C++笔记(1)——Anniversary
  • 【第43题】【062题库】2019年OCP认证062考试新题
  • 自我调查 使用输入法
  • linux轻量级监控工具-nmon
  • js基础---变量命名以及运算符
  • JS 原型、原型继承、原型链的理解
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • CentOS 7 防火墙操作
  • CSS实用技巧干货
  • IndexedDB
  • JS创建对象模式及其对象原型链探究(一):Object模式
  • Laravel 菜鸟晋级之路
  • Python打包系统简单入门
  • Sublime text 3 3103 注册码
  • unity如何实现一个固定宽度的orthagraphic相机
  • Zepto.js源码学习之二
  • 利用阿里云 OSS 搭建私有 Docker 仓库
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 网页视频流m3u8/ts视频下载
  • 阿里云ACE认证学习知识点梳理
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • ###C语言程序设计-----C语言学习(6)#
  • #考研#计算机文化知识1(局域网及网络互联)
  • (2)(2.10) LTM telemetry
  • (3)选择元素——(14)接触DOM元素(Accessing DOM elements)
  • (6)STL算法之转换
  • (笔试题)合法字符串
  • (附源码)python房屋租赁管理系统 毕业设计 745613
  • (未解决)macOS matplotlib 中文是方框
  • (一)Dubbo快速入门、介绍、使用
  • (转)GCC在C语言中内嵌汇编 asm __volatile__
  • (最全解法)输入一个整数,输出该数二进制表示中1的个数。
  • *p++,*(p++),*++p,(*p)++区别?
  • ..回顾17,展望18
  • .NET CORE 第一节 创建基本的 asp.net core
  • .Net下的签名与混淆
  • [2008][note]腔内级联拉曼发射的,二极管泵浦多频调Q laser——
  • [ACL2022] Text Smoothing: 一种在文本分类任务上的数据增强方法
  • [AIGC] 使用Curl进行网络请求的常见用法
  • [ASP.NET MVC]Ajax与CustomErrors的尴尬
  • [AutoSar]BSW_Com02 PDU详解
  • [BZOJ 1040] 骑士
  • [C++] Boost智能指针——boost::scoped_ptr(使用及原理分析)
  • [HNCTF 2022 WEEK2]easy_include 文件包含遇上nginx
  • [IE编程] 了解Urlmon.dll和Wininet.dll