赞
踩
在MongoDB中数据都是以文档(键值对)的形式进行存储的。这里的数据类型是针对键值对中的值进行说明的。
null表示空值的含义。
true表示真
false表示假
默认支持64位的浮点数来表示数值类型。
通过NumberInt或NumberLong类,来表示4字节或8字节的有符号整数。
通过NumberInt或NumberLong类创建整型数据时,输入必须为整数形式。
utf-8支持的字符串类型。
64位整数,表示自unix(1970-01-01)以来的毫秒数,不包含时区信息。
通过new Date()创建。
查询时可以使用正则表达式,语法与JavaScript的正则表达式语法相同。
数据类型可以当作数组使用,也可以当作集合使用。主要根据使用过程中使用的方法来确定。
内嵌文档就是指值为另一个键值对的含义,MongoDB中以Object类型表示
ObjectID是一个12字节的ID,是文档的唯一标识。可通过ObjectId()创建。
二进制数据是任意字节的字符串,不能通过shell操作。如果要将非utf8字符串存入数据库,那么使用二进制数据是唯一的方法。
MongoDB还可以在查询和文档中存储任意的JavaScript代码。
在MongoDB中插入数据就是插入一个文档,而文档是存储在集合中的,集合又是存储在数据库中的。
插入数据时需要指定存储文档的集合,然后通过insertOne()方法插入单条数据。
插入文档时如果没有提供_id键,MongoDB会自动添加该键,并通过ObjectId()方法生成对应的值。
如果要向一个集合中插入多个文档,那么可以使用insertMany方法。在MongoDB中是推荐使用批量导入数据的,这种方式效率高。
多个文档是存储在列表中的。
当进行批量数据插入时会存在部分数据插入失败的情况,这个时候MongoDB有两种策略,一种当出现错误后,停止插入后面的所有数据。另一种策略是或略出错的记录,继续插入其他不出错的记录。
执行哪一种策略是由,该方法的ordered参数决定的,当ordered为true时(默认),执行第一种策略,为false是执行第二种策略。
MongoDB删除数据时可以分为两种,一种是删除单条数据,另外一种是删除多条数据。
MongoDB中删除单条数据,是通过deleteOne()方法进行操作的。当满足过滤条件的数据有多条时,MongoDB将删除第一条数据。
实例中我们发现job为student的有两条记录。
当执行删除一条记录后,我们发现只剩下第二条记录了。
当我们想删除所有满足过滤条件的记录时,我们就需要使用deleteMany()方法进行操作。
通过查询发现test集合中存在两条name为jack2的记录,这里我们通过删除多条记录的方法将满足该条件的记录都删除。
删除整个集合数据有两种方式,一种是通过deleteMany({})这种方式,还有一种是通过集合的drop方法。
通常删除整个集合数据drop方法更加快捷高效。
用新的文档完全替换匹配的文档,通过replaceOne()方法实现。replaceOne方法也是只会替换一条记录。
test集合中有这样三条记录。
通过替换后,记录的结构发生改变。原来的文档结构被完全替换。
更新单条数据使用的方法是updateOne(),它只会更新满足过滤条件的第一条记录,并且它更新的内容是针对源记录中修改某个键的值,或者添加一个新的键值对,或者删除某个键。
当更新数据的时候,通常还需要使用到更新运算符(指定更新记录的方式),才能完成对数据的更新。
更新运算符 | 运算符说明 |
$inc | 用来修改已存在的键值或者在该键不存在时创建它。只能作用于数值类型数据。 |
$set | 用来设置一个字段的值。如果这个字段不存在,则创建该字段。 |
$unset | 删除某个键 |
$push | 针对值为数组类型的键,用于将元素添加到数组末尾。如果数组不存在,则会创建一个新的数组。 |
$each | 和$push共同使用表示,将$each键对应的多个值批量插入数组末尾。 |
$slice | 用来限制数组的长度 |
$sort | 用于排序 |
$ne | 表示不相等 |
$addToSet | 表示将列表当作集合进行使用 |
$pop | 如果将数组是为队列或栈,使用$pop从某一端删除元素。1表示末尾,-1表示头部 |
$pull | 用于删除与给定条件匹配的数组元素。删除所有匹配的文档 |
下标 | 定位数组中元素的位置 |
$ | 根据筛选条件定位到数组中元素的位置,只能匹配第一个匹配到的元素。 |
arrayFilters | 使我们能够修改与特定条件匹配的数组元素。 |
upsert | 如果找不到与筛选条件相匹配的文档,则会以这个条件和更新文档为基础来创建一个新的文档;如果找到了匹配的文档,则进行正常的更新。 |
加粗的为更改类型,其他的都是一些辅助的参数。
增加score键值:
增加chinese键的数值:
想score键中一次添加多个数值
更新多条数据使用的方法是updateMany(),它的用法和updateOne()方法类似,只不过其作用的范围不同。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。