mongodb增删改查
Posted Gloo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mongodb增删改查相关的知识,希望对你有一定的参考价值。
关于database的基础命令
查看当前的数据库:db
查看所有的数据库:show dbs /show databases
切换数据:use db_name
删除当前的数据库:db.dropDatabase()
关于集合的基础命令
不手动创建集合:
向不存在的集合中第一次加入数据时,集合会被创建出来
手动创建集合:
db.createCollection(name, options)
db.createCollection("stu")
db.createCollection("sub", {capped:true,size:10})
参数capped:默认值为false表示不设置上限,值为true表示设置上限
参数size:当capped值为true时,需要指定此参数,表示上限大小,当文档达到上限时,会将之前的数据覆盖,单位为字节
查看集合:show collections
删除集合:db.集合名称.drop()
数据类型
Object ID: 文档ID
String: 字符串,最常用,必须时有效的UTF-8
Boolean: 存储一个布尔值,true或false
Integer: 整数可以时32位
Double: 存储浮点值
Arrays: 数组或列表,多个值存储到一个键
Object: 用户嵌入式的文档,即一个值为一个文档
Null: 存储Null值
Timestamp: 时间戳,表示1970-1-1到现在的总秒数
Date: 存储当前日期或时间的UNIX时间格式
1 Double 浮点型
2 String UTF-8字符串都可表示为字符串类型的数据
3 Object 对象,嵌套另外的文档
4 Array 值的集合或者列表可以表示成数组
5 Binary data 二进制
7 Object id 对象id是文档的12字节的唯一 ID 系统默认会自动生成
8 Boolean 布尔类型有两个值TRUE和FALSE
9 Date 日期类型存储的是从标准纪元开始的毫秒数。不存储时区
10 Null 用于表示空值或者不存在的字段
11 Regular expression 采用js 的正则表达式语法
13 javascript code 可以存放Javasript 代码
14 Symbol 符号
15 JavaScript code with scope
16 32-bit integer 32位整数类型
17 Timestamp 特殊语义的时间戳数据类型
18 64-bit integer 64位整数类型
注意点
- 创建日期语句如下:参数的格式为YYYY-MM-DD
new Date(‘2018-10-14‘) - 每一个文档都有一个属性,为_id,保证每个文档的唯一性
- 可以自己去设置_id插入文档,如果没有提供,那么MongoDB为每个文档提供了一个独特的_id,类型为objectID
- objectID是一个12字节的十六进制数:
前4个字节为当前时间戳
接下来3个字节的机器ID
接下来的2个字节中MongoDB的服务进程id
最后3个字节是简单的增量值
插入
- db.集合名称.insert(document)
- db.stu.insert({‘name‘:‘gj‘,gender:1})
- db.stu.insert({_id:"20181014",name:‘gj‘,gender:1})
- 插入文档时,如果不指定_id参数,MangoDB会为文档分配一个唯一的ObjectID
保存
- db.集合名称.save(document)
- 如果文档的_id已经存在则修改,如果文档的_id不存在则添加
更新
db.集合名称.update(
参数query:查询条件
参数update:更新操作符
参数multi:可选,默认时false,表示只更新找到第一条记录,
db.stu.update({name:‘hr‘},{name:‘mnc‘}) 更新一条
db.stu.update({name:‘hr‘},{$set:{name:‘hys‘}}) 更新一条
db.stu.update({},{$set:{gender:0}},{multi:true}) 更新全部
注意:"multi update only works with $ operators"
删除
db.集合名称.remove(
参数query:可选,删除的文档的条件
参数justOne:可选,如果设为true或1,则只删除一条,默认false,表示删除多条
以上是关于mongodb增删改查的主要内容,如果未能解决你的问题,请参考以下文章