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的增删改查操作 转载请注明出处! ==================== ...
随机推荐
- 170613、Spring整合RabbitMQ实例
一.rabbitMQ简介 1.1.rabbitMQ的优点(适用范围)1. 基于erlang语言开发具有高可用高并发的优点,适合集群服务器.2. 健壮.稳定.易用.跨平台.支持多种语言.文档齐全.3. ...
- MVC之Filter
过滤器的理解 Filter就是过滤器,在WebForm中,各种管道事件就是相当于过滤器,在MVC中,过滤器是单独的一种机制,分为方法过滤器和异常处理过滤器,方法过滤器实现的功能是在执行某一个请求得方法 ...
- Django - 模型层 - 下
一.多表 sql 单表 多表 多对一 多对多 一对一 =============================================== 一对多:Book id title price p ...
- Scala面向对象和模式匹配
我们要封装数据,定义模板等操作,所以我们需要面向对象. 一.scala中的单例对象 在scala当中,是没有static的,scala给我们提供了单例模式的实现方法.就是使用关键字object. st ...
- neovim 使用
neovim配置与vim兼容,配置文件在~/.config/nvim 终端 :terminal 进入shell模式 <C-\><C-n> 退出终端 <M-i> 重新 ...
- eval(PHP 4, PHP 5)
eval — 把字符串作为PHP代码执行 说明 mixed eval ( string $code_str ) 把字符串 code_str 作为PHP代码执行. 除了其他,该函数能够执行储存于数据库文 ...
- 用 node.js 的 hexo 框架搭建一个支持 markdown 的静态博客系统
1,Hexo如何在线可视化写博客: 可以试试这款插件 hexo-admin. 2,马克飞象: 一个非常好的 markdown 编辑器. 3,Hexo博客文章设置密码的方法: 首先,在Hexo中 ...
- hadoop中map和reduce的数量设置
hadoop中map和reduce的数量设置,有以下几种方式来设置 一.mapred-default.xml 这个文件包含主要的你的站点定制的Hadoop.尽管文件名以mapred开头,通过它可以控制 ...
- Windows2003 + IIS6 安装.Net FrameWork 4.0 兼容早期版本的测试
看到文档说.net4的框架可以向下兼容2.0.3.0.3.5这几个版本,觉得是一件好事,以后服务器上就不用费时费力的安装 2.0.3.5之类的框架了.但是又觉得奇怪,2.0和3.5的框架都是很大的,为 ...
- ac自动机系列
hdu2222这题说的是在一个1000000的长串中找出n个短串是否在其中出现过 最后输出在长串中出现的个数 #include <iostream> #include <cstdio ...