mongodb增删改查操作
Note:mongodb存储的是文档,且文档是json格式的对象,所以增删改查都必须是json格式对象。
注:mongodb常用库和表操作,但mongodb在插入数据时,不需要先创建表。
show databases; #查看已有数据库
use dataName; #选择数据库,如果不存在库,则会自动创建。
show tables; # 查看已有的表
show collections # 同上,
db.createCollection('表名');#建表
db.表名.drop(); #删除表 注:table在mongodb里叫collections
1、增加数据,语法: db.collectionName.isnert(document)。
#不指定文档的id,数据库会默认分配一个随机id
db.user.insert({name:'zhaos',age:23,sex:'f'});
#指定文档的id
db.user.insert({_id:5,name:'zhaos',age:23,sex:'f'});
#增加单个文档
db.user.insert({_id:6,name:'zhaos',age:23,sex:'f'});
#增加多个文档
db.user.insert([{_id:2,name:'zhangs',age:21,sex:'m'},{_id:3,name:'wangw',age:22,sex:'m'},{_id:4,name:'zhaos',age:23,sex:'f'}]);
注意,这里解释下自动生成的id,MongoDB采用了一个ObjectId的类型来做主键,ObjectId是一个12字节的 BSON 类型字符串,按照字节顺序,依次代表:
4字节:UNIX时间戳
3字节:表示运行MongoDB的机器
2字节:表示生成此_id的进程
3字节:由一个随机数开始的计数器生成的值
2、删除数据,语法: db.collection.remove(查询表达式, 选项)。选项是指需要删除的文档数,{0/1},默认是0,删除全部文档。
#将所有_id=7的文档删除
db.user.remove({_id:7})
#将gender:'m'的所有文档删除
db.user.remove({gender:'m'})
#只删除一个gender:'m'的文档,num是指删除的文档数
db.user.remove({gender:'m',1})
3、修改数据,语法: db.collection.update(查询表达式,新值);
#从结果可以看出,这只是在替换一个文档,并非修改一个文档字段
> db.user.update({name:'zhangs'},{name:'liul'})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.user.find();
{ "_id" : 2, "name" : "liul" }
#修改一个文档的字段,必须使用$set:{属性:'值'}
> db.user.update({name:'zhaos'},{$set:{name:'kongkong'}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.user.find();
{ "_id" : 6, "name" : "kongkong", "age" : 23, "sex" : "f" }
修改时的赋值表达式
$set 修改某列的值
db.user.update({name:'zhaos'},{$set:{name:'kongkong'}})
$unset 删除某个列
eg:db.user.update({name:'kongkong'},{$unset:{name:'kongkong'}})
$rename 重命名某个列
eg:db.user.update({_id:6},{$rename:{sex:'gender'}})
eg:db.user.update({},{$rename:{'sex':'gender'}},{multi:true})
$inc 增长某个列
eg:db.user.update({_id:6},{$inc:{age:2}})
$setOnInsert 当upsert为true时,并且发生了insert操作时,可以补充的字段.
eq:db.user.update({_id:7},{$setOnInsert:{age:5,gender:'f'}},{upsert:true})
4、查找数据,语法: db.collection.find(查询表达式,查询的列)。
#查询一个表中的所有文档
db.user.find() #查询特定属性的文档
db.user.find({_id:3}) #查询所有文档,显示gender列,不显示id
db.user.find({},{gender:1,_id:0}) #查询所有gender:'m'的文档,显示gender列,age列,不显示id
db.user.find({gender:'m'},{gender:1,_id:0,age:1})
5、高级查询知识点。
#not equal 不等于
$ne ---> != 查询表达式
#查询age不等于25的文档
db.user.find({age:{$ne:25}})
#great than 大于
$gt ---> >
db.user.find({age:{$gt:20}})
#great than equal 大于等于
$gte ---> >=
db.user.find({age:{$gte:25}})
#less than 小于
$lt ---> <=
db.user.find({age:{$lt:25}})
#less than equal 小于等于
$lte ---> <=
db.user.find({age:{$lte:25}})
#$in --> in
#查询age为20和25的文档
db.user.find({age:{$in:[20,25]}})
#$nin --> not in
#查询age不为20和25的文档
db.user.find({age:{$nin:[20,25]}})
#$or
语法: {$or:[v1,v2..]}
是指取出 field列是一个数组,且至少包含 v1,v2值
db.user.find({$or:[{age:{$gte:30}},{name:"Zhaos"}]})
#$and
语法: {$and:[{<operator-expression>},{<operator-expression>}..]}
是指取出 field列是一个数组,且至少包含 v1,v2值
db.user.find({$and:[{age:{$lte:30}},{age:{$gte:5}}]})
#$not
语法:{field:{$not:{ <operator-expression> }}}
是指取出 field列是一个数组,且至少包含 v1,v2值
db.user.find({age:{$not:{$gt:25}}})
#$all
语法: {field:{$all:[v1,v2..]}}
是指取出 field列是一个数组,且至少包含 v1,v2值
db.user.find({age:{$all:[30]}})
$exists
语法: {field:{$exists:1}}
作用: 查询出含有field字段的文档
#查询含有age列的文档
db.user.find({age:{$exists:1}})
$mod
语法: {field:{$mod:[ divisor(除数), remainder(余数)]}}
作用: 查询出含有mod字段的文档
#查询含有age列的文档
db.user.find({_id:{$mod:[5,0]}})
$nor
{$nor,[条件1,条件2]}
是指所有条件都不满足的文档为真返回
#查询所有age不为30,gender不为f的文档
db.user.find({$nor:[{age:30},{gender:'f'}]})
正则表达式查询
#查询所有以name:yang开头的文档 /patern/
db.user.find({name:/yang*/})
#查询所有以name:zhao开头的文档,且不区分大小写 /patern/i
db.user.find({name:/zhao/i})
$where
#查询age>6,且age<22的文档
db.user.find({$where:"this.age>6" && "this.age<=22"})
mongodb增删改查操作的更多相关文章
- MongoDB增删改查操作详解
一.插入 MongoDB的插入操作很简单,使用insert方法,这里演示从创建数据库.创建集合到插入文档.查询文档. 集合创建方法参数说明: size:集合最大空间 max:集合最多文档数量 (超出s ...
- MongoDB增删改查操作详解(命令行)
一.插入 MongoDB的插入操作很简单,使用insert方法,这里演示从创建数据库.创建集合到插入文档.查询文档. 集合创建方法参数说明: size:集合最大空间 max:集合最多文档数量 (超出s ...
- spring mongodb增删改查操作
添加数据 School @Id @GeneratedValue private long id; @Indexed(unique = true) private String name; studen ...
- 数据库——MongoDB增删改查
MongoDB增删改查操作 本文包含对数据库.集合以及文档的基本增删改查操作 数据库操作 #1.增 use config #如果数据库不存在,则创建并切换到该数据库,存在则直接切换到指定数据库. #2 ...
- Scala对MongoDB的增删改查操作
=========================================== 原文链接: Scala对MongoDB的增删改查操作 转载请注明出处! ==================== ...
- python 全栈开发,Day124(MongoDB初识,增删改查操作,数据类型,$关键字以及$修改器,"$"的奇妙用法,Array Object 的特殊操作,选取跳过排序,客户端操作)
一.MongoDB初识 什么是MongoDB MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介 ...
- MongoDB - 增删改查及聚合操作
目录 MongoDB - 增删改查及聚合操作 一. 数据库操作(database) 1. 创建及查看库 2. 删除库 二. 集合collectionc=操作(相当于SQL数据库中的表table) 1. ...
- mongoVUE的增删改查操作使用说明
mongoVUE的增删改查操作使用说明 一. 查询 1. 精确查询 1)右键点击集合名,再左键点击Find 或者直接点击工具栏上的Find 2)查询界面,包括四个区域 {Find}区,查询条件格式{& ...
- [MongoDB]增删改查
摘要 上篇文章学习了mongodb在windows上的安装,以及如何开启mongodb,最后列举了简单的增删改查操作.本篇将继续深入学习一下增删改查. 相关文章 [MongoDB]入门操作 CRUD ...
随机推荐
- 【wifi移植 3】开发板wifi自动获取IP
内核版本:3.4.61 1. 配置内核,支持DHCP ~/kernel$ make menuconfig [*] Networking support ---> Networking opti ...
- Linux基础知识之文件的权限(二)
除了基本的r,w,x之外,在linux传统的ext2.ext3.ext4文件系统下,还可以设置其他 的文件属性.如chattr,lsattr,而在CentOS7中默认利用xfs作为默认的文件系统,就不 ...
- JS笔记02
回顾: html: 超文本标记语言 后缀名: *.html 或 *.htm 标签分类: 围堵标签: 双标签 <html>标签体</html> 空标签: 单标签 <br/& ...
- 本地phpmyadmin 访问远程数据库服务器
第一步:打开/phpmyadmin/libraries 目录 第二步:修改config.default.php 文件(linux下可用vim编辑,FreeBSD下可用vi或是ee编辑)找到“All ...
- 第七章 路由 75 路由传参-使用query方式传递参数
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- IOS下图片不能显示问题的解决办法
最近遇到这样一个问题,在HTML5手机页面中,直接给<img>标签设置宽高,即便图片路径正常,在IOS真机下也是无法显示的,而在安卓以及浏览器的模拟真机上都是正常显示的,这是为什么呢? h ...
- java 内部类(简单使用)
什么是内部类 1.内部类是指在一个外部类的内部再定义一个类. 2.内部类作为外部类的一个成员,依附于外部类而存在. 3.内部类可为静态,可用protected和private修饰(而外部类只能使用pu ...
- Ubuntu16.04连接SSH出现 Server responded “Algorithm negotiation failed” 的解决方法
今天安装了Ubuntu16.04虚拟机,与SSH连接时出现了如下问题 解决方法如下: (写在前面:请先确保自己已经给Ubuntu安装了SSH服务.安装方法是在root模式下,终端输入命令apt-g ...
- html 与 jsp 文件格式区别
html 与 jsp 文件格式区别 html5 <!DOCTYPE html> <html> <head> <meta charset="UTF-8 ...
- laya入门及egret
laya篇 1.laya的资源会自动打包可手动设置,在view编辑界面 2.laya的界面编辑器用的是mornUI,所以是xml解析成view的 3.laya的事件均继承dom事件 4.sprite的 ...