====================================MGDB的操作======================================

0.创建数据库时使用(use 数据库名)来创建,但如果use命令之后没有进行其它操作(如:给定list)直接退出,那么use命令执行出来的数据库将会从缓冲池中被清除,并没有真正    创建!;

1.use命令不但能声明创建数据库而且还能可以***切换数据库***;

2.删除一个数据库时需切换到该数据库后使用 db.dropDatabase();语句即可;

3.查询当前登录用户有多少个数据库则使用 show dbs 命令;

====================================MGDB的list操作======================================

5.查询当前数据库中有几个list使用 show collections  命令 ;

6.从一个数据库删除一个list的时候使用 db.list名.drop();

7.给数据库增加一个list(list中必须要有元素)时先切换到当前数据库后使用 db.list名.insert({name:"asd",age:"12"});语句即可;

====================================MGDB的list中的数据操作======================================

8.在list中插入一条数据使用 db.list名.insert({name:"asd",age:"12"});

  8.1-> 如果数据库中声明了一个特殊的list(如:d-d)要给这样的list插入数据需要使用 db.getCollection("list名").text.insert({...}); 命令,所以在命名上需要注意;

  8.2-> 可以使用for循环进行使用insert 进行批量数据插入;

  8.3-> 如果在向list插入数据的时候 自己命名了"_id"键并产生重复数据时,使用insert则会报错,使用save则会变为修改上条"_id"键相同的数据;

9.更新一条list数据的命令是 db.list名.update({name:"asd"},{$set:{name:"bbb"}});***$set:操作符属于局部更新如果不使用会造成其它键值对被清掉***

  9.1-> 批量更新使用 db.list名.update({查询器},{更新器},false,true); 命令第四个参数是批量的意思,否则只更新第一条记录;

  ==============================$更新器==============================

  9.2-> (db.list名.update({查询器},{$set:{...}},false,true);)$set更新器中的内容如果不存在这个键 则加上这个键值对;

  9.3-> db.list名.update({num:5},{$inc:{num:正整数或负整数}},false,true); 如为正整数则加上相应的数组,负整数则减去相应的数字;

  9.4-> db.list名.update({num:5},{$unset:{num:任意正整数}},false,true); 会将把num的键值对删除掉;

     ==============================$更新器针对list中值为数组的键值对数据==============================

     9.5.1-> db.list名.update({num:5},{$push:{books:"aa"}},false,true); 如果这个list中存在一条或几条带有books为键值为数组的键值对则该数组进行更新,没有则创建,如果键存在而值不是数组形式则会报错;

     9.5.2-> db.list名.update({num:5},{$pushAll:{books:["aa","bb"]}},false,true); 和上条同理只是批量更新;

     9.5.3-> db.list名.update({num:5},{$addToSet:{books:["aa"]}},false,true); 如果books中存在aa则更新插入否则不执行;

     9.5.4-> db.list名.update({num:5},{$pop:{books:-1}},false,true); 如果books:-1时从值数组中删除第一个值,若为books:1则从最后一个位置删除一个值;

     9.5.5-> db.list名.update({num:5},{$pull:{books:"a"}},false,true); 删除book中值为a的值;

     9.5.6-> db.list名.update({num:5},{$pull:{books:["a","b"]}},false,true); 批量删除book中值为a和b的值;

     9.5.7-> ***批量判断式的更新值数组操作***  db.list名.update({num:5},{$addToSet:{books:{$each:["a","b"]}}},false,true); 如果books中存在a或b就不填加,否则就添加到books中去;

10.删除一条list元素db.list名.remove({"name" : "gg"});

11.删除所有记录 使用db.list名.remove();时索引并不删除***如果数据量及其庞大的话使用db.list名.drop();效率比较高***;

12.如果数据存在就选择更新操作数据不存在就选择插入操作(insertOrupdate)使用  db.list名.update({查询器},{更新器},true);

  

MongoDB常用操作总结的更多相关文章

  1. mongodb常用操作语句

    mongodb常用操作语句 A:创建数据表 db.createCollection(name, {capped: <Boolean>, autoIndexId: <Boolean&g ...

  2. MongoDB常用操作

    (备注: 对于 window, 不需要sudo) 验证成功与否: * 启动服务器: $sudo mongod --dbpath C:\data\db (需要 指明数据库存放的目录) * 打开shell ...

  3. MongoDB系列:二、MongoDB常用操作练习

    最近在自学MongoDB,在此记录一下,当做学习笔记了(不断更新中)!! 一.背景 MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存 ...

  4. MongoDB常用操作一查询find方法db.collection_name.find()

    来:http://blog.csdn.net/wangli61289/article/details/40623097 https://docs.mongodb.org/manual/referenc ...

  5. MongoDB常用操作--简介

    mongodb在项目中使用越来越觉得日志方面的记录和查询是远远优于MySQL的,所以对其一些基本的操作进行了整理,以下就是整理的一些规则插入数据: insert插入多组数据:inserrAll修改数据 ...

  6. MongoDB常用操作一查询find方法(转)

    来:http://blog.csdn.net/wangli61289/article/details/40623097 https://docs.mongodb.org/manual/referenc ...

  7. MongoDB常用操作整理

    Mongodb:是一种NoSQL数据库,NoSQL:Not Only SQLSQL: 数据表->JDBC读取->POJO(VO.PO)->控制层转化为JSON数据->客户端 这 ...

  8. MongoDB常用操作--集合2

    1.查询集合中的文档,可以使用命令 db.集合名称.find({条件}),或者使用 db.集合名称.findOne() 查询第一个文档 2.查询集合中的文档,返回某些特定的键值 3.查询集合中的文档 ...

  9. Express使用MongoDB常用操作

    const MongoClient = require('mongodb').MongoClient const url = "mongodb://localhost:27017" ...

随机推荐

  1. 贪心 赛码 1001 Movie

    题目传送门 /* 贪心:官方题解: 首先我们考虑如何选择最左边的一个区间 假设最左边的区间标号是i, 那选择的另外两个区间的左端点必定要大于Ri 若存在i之外的j, 满足Rj<Ri, 那么另外两 ...

  2. POJ3177 Redundant Paths(边双连通分量+缩点)

    题目大概是给一个无向连通图,问最少加几条边,使图的任意两点都至少有两条边不重复路径. 如果一个图是边双连通图,即不存在割边,那么任何两个点都满足至少有两条边不重复路径,因为假设有重复边那这条边一定就是 ...

  3. jmx远程访问权限设置

    1.复制jdk提供的jmx帐号和密码配置文件模板到tomcat的conf目录: cp $JAVA_HOME/jre/lib/management/jmxremote.* tomcat/conf 2.重 ...

  4. ! cocos2d sprintf的问题

    char dong[100]; sprintf(dong,"%s","dongshen"); CCLOG(dong); 以上正确 char dong[100]; ...

  5. BZOJ2735 : 世博会

    $|x_1-x_2|+|y_1-y_2|=\max(|(x_1+y_1)-(x_2+y_2)|,|(x_1-y_1)-(x_2-y_2)|)$ 将坐标$(x,y)$逆变换为$(\frac{x+y}{2 ...

  6. (转)Linq学习笔记

    写在前面 最近在看Linq,在博客园看到这篇文章,写的通俗易懂,转来和大家一起做个分享.原文地址http://www.cnblogs.com/goscan/archive/2011/05/05/Lin ...

  7. 【SPOJ】375. Query on a tree(树链剖分)

    http://www.spoj.com/problems/QTREE/ 这是按边分类的. 调试调到吐,对拍都查不出来,后来改了下造数据的,拍出来了.囧啊啊啊啊啊啊 时间都花在调试上了,打hld只用了半 ...

  8. [BZOJ 2631]tree

    裸LCT..QAQ写了三遍没写对 真是老了..QAQ 主要错的地方是 init: size[i] = sum[i] = val[i] = mul[i] = 1; pushdown: 注意判断左右儿子是 ...

  9. Spring动态配置多数据源

    Spring动态配置多数据源,即在大型应用中对数据进行切分,并且采用多个数据库实例进行管理,这样可以有效提高系统的水平伸缩性.而这样的方案就会不同于常见的单一数据实例的方案,这就要程序在运行时根据当时 ...

  10. meta标签的用法

    meta是用来在HTML文档中模拟HTTP协议的响应头报文.meta 标签用于网页的<head>与</head>中,meta 标签的用处很多.meta 的属性有两种:name和 ...