mongo 增删改查
1. use foobar
2. show dbs
3. show collections
4. db.system.indexes.find()
5. db.persons.find()
6. db.persons.insert({name:"extjs4.0"})
7. db.persons.findOne()
8. db.persons.update({name:"extjs4.0"},{$set:{name:"extjs4.1"}})
强硬的文档替换工作:
db.text.update({name:"yfc"},{age:29})
9. var p=db.persons.findOne();
db.persons.update(p,{name:"uspcat"})
10.db.persons.update({age:1},{$set:{age:2}});
如果有两个age为一的话,我们只能修改一个。
11.db.persons.remove({age:2});
12.db.persons.insert({_id:"001",name:"yun"})//自己主动插入_id.
13.db.persons.insert([{name:"34"},{name:"234"}])
这样子插入的话,结果"0":{"name":"34","1":{"name","234"}}
14. 批量插入,
for(var i=0;i<10;i++){
db.persons.insert({name:i})
}
15. save与insert的区别在于,在相同id的情况下,insert回报错。
16.db.persons.remove()
17.db.persons.remove({_id:1})
18.插入或者更新
db.persons.update({查询器},{修改器},true)
19.实现批量修改
db.persons.update({name:3},{$set:{name:"333"}},false,true)
20.
$set 用来指定一个键值对,如果存在键就进行修改,不存在则进行添加。
$inc 只是使用与数字类型,他可以为指定的键对应的数字类型的数值进行加减操作。
$unset 他的用法很简单,就是删除指定的键。
$push 如果指定的键是数组增追加新的数值,如果不存在指定的键则创建数组类型的键值对。
$pushAll 用法和$push相似,可以批量添加数组。
$addToSet 目标数组存在此项则不操作,不存在此项则加进去。
$pop 从指定数组删除一个值,1删除最后一个数值,-1删除第一个数值。
$pull 删除一个被指定的数值。
$pullAll一次性删除多个指定的数值。
$ db.text.update({"books.type":"JS"},{$set:{"books.$.author":"USPCAT"}})
===================================================================
find的用法:
21. db.persons.find({},{name:1,age:1,country:1,_id:0});
22.$lt < $lte <= $gt > $gte >= $ne !=
23. 查询出年龄在25到27岁之间的学生 db.persons.find({age: {$gte:25,$lte:27},{_id:0,age:1})
24.查询出所有不是韩国籍的学生的数学成绩db.persons.find({country:{$ne:” Korea”}},{_id:0,m:1})
============================================================
包含或不包含$in 或$nin
25.查询国籍是中国或美国的学生信息
db.persons.find({country:{$in:[“USA”,“China”]}})
26.查询国籍不是中国或美国的学生信息
db.persons.find({country:{$nin:[“USA”,“China”]}})
==============================================================
or查询$or
27.查询语文成绩大于85或者英语大于90的学生信息
db.persons.find({$or:[{$gte:85}},{e:{$gte:90}}],{_id:0,c:1,e:1})
28.把中国国籍的学生上增加新的键sex
db.person.update({country:”China”},{$set:{sex:”m”}})
29.查询出sex等于null的学生
db.persons.find({sex:{$in:[null]}},{country:1})
==============================================================
30.查询出名字中存在”li”的学生的信息db.persons.find({name:/li/i},{_id:0,name:1})
31.$not可以用到任何地方进行取反操作
查询出名字中不存在”li”的学生的信息
db.persons.find({name:{$not:/li/i}},{_id:0,name:1})
$not和$nin的区别是$not可以用在任何地方儿$nin是用到集合上的
32.数组查询$all和index应用
2.8查询喜欢看MONGOD和JS的学生
db.persons.find({books:{$all:[“MONGOBD”,”JS”]}},{books:1,_id:0})
2.9查询第二本书是JAVA的学习信息
db.persons.find({“books.1”:”JAVA”})
db.persons.find({name:{$not:/li/i}},{_id:0,name:1})
33. .查询指定长度数组$size它不能与比较查询符一起使用(这是弊端)
2.8查询出喜欢的书籍数量是4本的学生
db.persons.find({books:{$size:4}},{_id:0,books:1})
34.查询出喜欢的书籍数量大于3本的学生
1.增加字段size
db.persons.update({},{$set:{size:4}},false, true)
2.改变书籍的更新方式,每次增加书籍的时候size增加1
db.persons.update({查询器},{$push:{books:”ORACLE”},$inc:{size:1}})
3.利用$gt查询
db.persons.find({size:{$gt:3}})
35.利用shell查询出Jim喜欢看的书的数量
var persons = db.persons.find({name:"jim"})
while(persons.hasNext()){
obj = persons.next();
print(obj.books.length)
}
36. 1.mongodb 是NOSQL数据库但是他在文档查询上还是很强大的
2.查询符基本是用到花括号里面的更新符基本是在外面
3.shell是个彻彻底底的JS引擎,但是一些特殊的操作要靠他的
各个驱动包来成(JAVA,NODE.JS)
==================================================================
1.注意在json中name:"3" 与"name":"3"是一样的,但是name:"3"与name:3就不同了。
他不允许后边一个有引号另一个没哟引号。
2.mongo没有事务,本来就不完事务的,事务是原子级的,效率低。
3.couchDB里号称是有事务性的mongodb
因为没用过,所以,你们懂的
***************************************************************************
***************************************************************************
对update 的set的使用
如果没有使用set是这个结果:
如果使用set是这个结果:
********************************************************
********************************************************
1.db.stats();
2.db.persons.help()
3.db-text这个集合不能通过db.[],只能db.getCollection()
4.
1.插入文档 db.[documentName].insert({})
2.批量插入文档 shell 这样执行是错误的 db.[documentName].insert([{},{},{},……..]) shell 不支持批量插入 想完成批量插入可以用mongo的应用驱动或是shell的for循环
3.Save操作 save操作和insert操作区别在于当遇到_id相同的情况下 save完成保存操作 insert则会报错
正确的批量插入数据的方法:
insert和save方法
1.删除列表中所有数据 db.[documentName].remove() 集合的本身和索引不会别删除
2.根据条件删除 db.[documentName].remove({}) 删除集合text中name等于uspcat的纪录 db.text.remove({name:”uspcat”})
3.小技巧 如果你想清楚一个数据量十分庞大的集合 直接删除该集合并且重新建立索引的办法 比直接用remove的效率和高很多。使用drop方法。
*************************
insert如果输入的'_id'相同的话,是不能插入的。
如果update含有第三个参数为true的话,那么没有表示insertorupdate,没有的话插入。
update只更新最第一个相似的
批量更新:
******************************************
******************************************
$set的用法:如果有这个属性就更改,如果没有就添加。
inc
unset
push
pushAll
addToSet
使用修改器来完成局部更新操作
数组定位器的用法:
$修改器是放在外层的,而$查询器是放在内层。
6. $addToSet与$each结合完成批量数组更新 db.text.update({_id:1000},{$addToSet:{books:{$each:[“JS”,”DB”]}}}) $each会循环后面的数组把每一个数值进行$addToSet操作
7.存在分配与查询效率 当document被创建的时候DB为其分配没存和预留内存当修改操作 不超过预留内层的时候则速度非常快反而超过了就要分配新的内存 则会消耗时间
8. runCommand函数和findAndModify函数 runCommand可以执行mongoDB中的特殊函数 findAndModify就是特殊函数之一他的用于是返回update或remove后的文档 runCommand({“findAndModify”:”processes”, query:{查询器}, sort{排序}, new:true update:{更新器}, remove:true }).value ps = db.runCommand({ "findAndModify":"persons", "query":{"name":"text"}, "update":{"$set":{"email":"1221"}}, "new":true }).value do_something(ps) http://www.cppblog.com/byc/archive/2011/07/15/151063.aspx
9. mongo的查询
第一个对象{}表示查询所有的,id:0 表示不显示id,其余的后边都是1表示该属性显示。
10.
mongo 增删改查的更多相关文章
- mongo增删改查封装(C#)
Framework版本:.Net Framework 4 ConnectionUtil源码参见:https://www.cnblogs.com/threadj/p/10536273.html usin ...
- 2. MongoDB基本操作 —— 用Mongo.exe操作数据库增删改查
一.开篇 传统的关系数据库一般由数据库(database).表(table).记录(record)三个层次概念组成,MongoDB是由数据库(database).集合(collection).文档对象 ...
- MongoDB基础入门002--基本操作,增删改查
一.这里只是演示最基本的操作,更多的信息可以去官网.https://docs.mongodb.com/manual 打开一个cmd,输入mongo命令打开shell,其实这个shell就是mongod ...
- Java连接MongoDB进行增删改查
1.导入必须的包: 详情看项目:http://pan.baidu.com/s/1cvDAOY 2.通过Myeclipse创建WEB项目 3. 3.bean:创建实体类 package com.bean ...
- MongoDB 3.0.6 安装 增删改查
下载 安装包MSI http://yunpan.cn/cmhHdTPkXZRM2 访问密码 9b6c 上边提供的是 MongoDB 3.0.6 64Bit 的安装包 安装 如果不想直接安装在C盘.. ...
- Mongodb c#增删改查
写在前面 最近项目需要,就研究了下mongodb,也是为了快速上手,就自己弄了一个简单的例子,这里记录一下. Mongodb 传统的关系数据库一般由数据库(database).表(table).记录( ...
- mongoDB4--mongoDB的增删改查
MongoDb基本操作之增删改查我们知道传统关系型数据库的最常用操作就是"增加/删除/修改/查询",也就是传说中的CRUD(create/remove/updte/delete). ...
- mongoDB 学习笔记纯干货(mongoose、增删改查、聚合、索引、连接、备份与恢复、监控等等)
最后更新时间:2017-07-13 11:10:49 原始文章链接:http://www.lovebxm.com/2017/07/13/mongodb_primer/ MongoDB - 简介 官网: ...
- Scala对MongoDB的增删改查操作
=========================================== 原文链接: Scala对MongoDB的增删改查操作 转载请注明出处! ==================== ...
随机推荐
- Spring源码学习之IOC实现原理(二)-ApplicationContext
一.Spring核心组件结构 总的来说Spring共有三个核心组件,分别为Core,Context,Bean.三大核心组件的协同工作主要表现在 :Bean是包装我们应用程序自定义对象Object的,O ...
- pta 习题集 5-14 求n以内最大的k个素数以及它们的和
本题要求计算并输出不超过n的最大的k个素数以及它们的和. 输入格式: 输入在一行中给出n(10≤≤n≤≤10000)和k(1≤≤k≤≤10)的值. 输出格式: 在一行中按下列格式输出: 素数1+素数2 ...
- C/C++ 开放库
C/C++ 开放库 1.Best C/C++ Network Library 2.A list of open source C++ libraries
- Shape of passed values is (3490, 21), indices imply (3469, 21)
背景 处理DataFrame数据时,抛了这个错误:Shape of passed values is (3490, 21), indices imply (3469, 21) 解决 数据出现重复,导致 ...
- android:layout_gravity 和 android:gravity
android:layout_gravity和 android:gravity的区别,android:gravity是对元素本身说的,元素本身的文本显示在什么地方靠着 换个属性设置,不过不设置默认是在 ...
- 205-react SyntheticEvent 事件
参看地址:https://reactjs.org/docs/events.html
- Exception in thread "main" java.lang.NoClassDefFoundError: scala/Product$class
在使用spark sql时一直运行报这个错误,最后仔细排查竟然是引入了两个scala library .去除其中一个scala的编译器即可 Exception in thread "main ...
- selenium3.0 远程模式
准备工作: 1. 安装chrome浏览器 2. 下载selnium-server-standalone-3.0.1.jar 步骤: 1. java -jar selnium-server-standa ...
- 接口测试之接口api文档的重要性
接口文档的特点 接口文档,顾名思义就是对接口说明的文档.好的接口文档包含了对接口URL,参数以及输出内容的说明,我们参照接口文档就能编写出一个个的测试用例.而且接口文档详细的话,测试用例编写简单,不会 ...
- 安装完C++builder6.0启动的时候总是出现无法将'C:\Program Files\Borland\CBuilder6\Bin\bcb.$$$'重命名为bcb.dro
:兼容性问题 运行前右键属性“兼容性”-尝试不同的兼容性.比如“windows 8”