mongodb学习笔记
一、mongodb创建数据库
use 命令
MongoDB use DATABASE_NAME 用于创建数据库。该命令将创建一个新的数据库,如果它不存在,否则将返回现有的数据库。
语法:
use DATABASE 语句的基本语法如下:
use DATABASE_NAME
检查当前选择的数据库使用命令 db
检查数据库列表,使用命令show dbs.
创建的数据库mydb 列表中是不存在的。要显示的数据库,需要把它插入至少一个文件。
注意:MongoDB 默认数据库测试。如果没有创建任何数据库,然后集合将被存储在测试数据库。
二、mongodb删除数据库
dropDatabase() 方法
MongoDB db.dropDatabase() 命令是用来删除一个现有的数据库。
语法:
dropDatabase() 命令的基本语法如下:
db.dropDatabase()
这将删除选定的数据库。如果还没有选择任何数据库,然后它会删除默认的 ' test' 数据库
三、mongodb创建集合
MongoDB db.createCollection(name, options) 是用来创建集合.
语法:
基本的 createCollection() 命令语法如下:
db.createCollection(name,options)
Name:类型为string类型(要创建的集合名称)
Options:类型为Document(指定有关内存大小和索引选项(可选))
db.createCollection("mycollection")
检查通过使用创建的集合命令 show collections
注:在MongoDB中,不需要创建集合。当插入一些文件 MongoDB 自动创建的集合。
四、mongodb删除集合
MongoDB 的 db.collection.drop() 是用来从数据库中删除一个集合。
语法:
drop() 命令的基本语法如下
db.COLLECTION_NAME.drop()
五、mongodb数据类型
String : 这是最常用的数据类型来存储数据。在MongoDB中的字符串 必须是有效的UTF-8。
Integer : 这种类型是用来存储一个数值。整数可以是32位或64位,这 取决于您的服务器。
Boolean : 此类型用于存储一个布尔值 (true/ false) 。
Double : 这种类型是用来存储浮点值。
Min/ Max keys : 这种类型被用来对BSON元素的最低和最高值比较。
Arrays : 使用此类型的数组或列表或多个值存储到一个键。
Timestamp : 时间戳。这可以方便记录时的文件已被修改或添加。
Object : 此数据类型用于嵌入式的文件。
Null : 这种类型是用来存储一个Null值。
Symbol : 此数据类型用于字符串相同,但它通常是保留给特定符号类 型的语言使用。
Date : 此数据类型用于存储当前日期或时间的UNIX时间格式。可以指 定自己的日期和时间,日期和年,月,日到创建对象。
Object ID : 此数据类型用于存储文档的ID。
Binary data : 此数据类型用于存储二进制数据。
Code : 此数据类型用于存储到文档中的JavaScript代码。
Regular expression : 此数据类型用于存储正则表达式
六、mongodb插入文档
insert() 方法
要插入数据到 MongoDB 集合,需要使用 MongoDB 的 insert() 或 save() 方法。
语法
insert() 命令的基本语法如下:
>db.COLLECTION_NAME.insert(document)
注:如果集合在数据库中不存在,那么MongoDB 将创建此集合,然后把它插入文档。
插入文档中,如果我们不指定_id参数,然后MongoDB 本文档分配一个独特的ObjectId。
如果不指定_id在文档中,然后将其 save() 方法和 insert()方法工作一样。如果指定_id,它会替换整个数据文件,其中包含_id 指定save()方法
七、mongodb查询文档
要从MongoDB 查询集合数据,需要使用MongoDB 的 find() 方法。
语法
基本的find()方法语法如下
>db.COLLECTION_NAME.find()
结果显示在一个格式化的方式,可以使用 pretty() 方法.
语法:
>db.mycol.find().pretty()
1、AND 在MongoDB中用法
语法:
在 find() 方法,如果通过多个键分离',',那么 MongoDB 处理 AND 条件。AND 基本语法如下所示:
>db.mycol.find({key1:value1, key2:value2}).pretty()
2、OR条件的基础上要查询文件,需要使用$or关键字。
OR 基本语法如下所示:
>db.mycol.find(
{
$or: [
{key1:value1},{key2:value2}
]
} ).pretty()
3、AND 和 OR 一起使用
SQL where子句 为 'where likes>10 AND (by = 'yiibai' OR title = 'MongoDB Overview')'
db.mycol.find("likes": {$gt:10}, $or: [{"by": "yiibai"}, {"title": "MongoDB Overview"}] }).pretty()
{ "_id": ObjectId(7df78ad8902c),
"title": "MongoDB Overview",
"description": "MongoDB is no sql database",
"by": "yiibai",
"url": "http://www.yiibai.com",
"tags": ["mongodb", "database","NoSQL"],
"likes":"100"}
八、mongodb更新文档
MongoDB的 update() 和 save() 方法用于更新文档的集合。 update()方法更新现有的文档值,而替换现有的文档通过的文件中 save() 方法。
MongoDB Update() 方法
update()方法更新现有文档值。
语法:
update() 方法的基本语法如下
>db.COLLECTION_NAME.update(SELECTIOIN_CRITERIA, UPDATED_DATA)
例子:
db.mycollection.update({'interest':'Film'},{$set:{'interest':'wl'}},{multi:true})
注:MongoDB默认将只更新单一的文件,来更新多个你需要设置参数置'multi' 为true
MongoDB Save() 方法
save() 方法替换现有的文档和通过新的文档 save() 方法
语法
MongoDB 的 save() 方法的基本语法如下:
db.COLLECTION_NAME.save({_id:ObjectId(),NEW_DATA})
九、mongodb删除文档
1、remove() 方法
MongoDB的 remove() 方法用于从集合中删除文档。remove() 方法接受两个参数。第一个是删除criteria ,第二是justOne标志:
deletion criteria :(可选)删除标准,根据文件将被删除。
justOne : (可选)如果设置为true或1,然后只删除一个文件。
语法:
基本语法remove()方法如下
>db.COLLECTION_NAME.remove(DELLETION_CRITTERIA)
2、删除只有一个
如果有多个记录且要删除的只有第一条记录,那么设置remove()方法中justOne参数
例子:db.COLLECTION_NAME.remove(DELETION_CRITERIA,1)
3、删除所有文件
如果不指定删除条件,然后MongoDB将从集合中删除整个文件。这相当于SQL的truncate命令。
>db.mycol.remove()
十、mongodb投影
mongodb 投影意思是只选择必要的数据而不是选择一个文件的数据的整个。如果一个文档有5个字段,需要显示只有3个,然后选择其中只有3个字段。
find() 方法
MongoDB 的find()方法,在 MongoDB查询 文档解释接受第二个可选参数是要检索的字段列表。在MongoDB中,当执行find()方法,那么它会显示一个文档所有字段。要限制这一点,需要设置的字段列表值1或0。 1用来显示字段而0是用来隐藏字段。
语法:
find()方法具有投影基本语法如下
>db.COLLECTION_NAME.find({},{KEY:1})
十一、mongodb限制记录
要限制 MongoDB 中的记录,需要使用 limit() 方法。 limit() 方法接受一个数字型的参数,这是要显示的文档数。
语法:
limit() 方法的基本语法如下
>db.COLLECTION_NAME.find().limit(NUMBER)
MongoDB Skip() 方法
除了limit() 方法,还有一个方法skip() 也接受数字类型的参数,并使用跳过的文档数。
语法:
skip()方法基本语法如下
db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER)
注意,默认值skip()方法是0,也就是默认只显示第一个文档
十二、mongodb排序文档
sort() 方法
要在 MongoDB 中的文档进行排序,需要使用sort()方法。 sort() 方法接受一个文档,其中包含的字段列表连同他们的排序顺序。要指定排序顺序1和-1。 1用于升序排列,而-1用于降序。
语法:
sort() 方法的基本语法如下
>db.COLLECTION_NAME.find().sort({KEY:1})
注意,如果不指定排序优先,然后sort() 方法将文档显示在升序排列。
十三、mongodb索引
索引支持的解析度的查询效率。如果没有索引,MongoDB必须扫描每一个文档的集合,要选择那些文档相匹配的查询语句。这种扫描的效率非常低,会要求 mongod 做大数据量的处理。
索引是一种特殊的数据结构,存储设置在一个易于遍历形式的数据的一小部分。索引存储一个特定的字段或一组字段的值,在索引中指定的值的字段排列的。
ensureIndex() 方法
要创建一个索引,需要使用MongoDB 的ensureIndex()方法。
语法:
ensureIndex() 方法的基本语法如下
>db.COLLECTION_NAME.ensureIndex({KEY:1})
这里关键是要在其中创建索引,1是按升序排列的字段名称。要创建降序索引,需要使用-1
十四、mongodb聚合
聚合操作过程中的数据记录和计算结果返回。聚合操作分组值从多个文档,并可以执行各种操作,分组数据返回单个结果。在SQL COUNT(*)和group by 相当于MongoDB的聚集。
aggregate() 方法
对于在MongoDB中聚集,应该使用aggregate()方法。
语法:
aggregate() 方法的基本语法如下
>db.COLLECTION_NAME.aggregate(AGGREGATE_OPERATION)
十五、mongodb复制
复制是跨多个服务器同步数据的过程中。复制提供了冗余和增加数据可用性与不同的数据库服务器上的数据的多个副本,复制保护数据库从一台服务器上的损失。复制也可以让恢复硬件故障和服务中断。额外的数据副本,可以奉献一到灾难恢复,报告,或备份。
十六、mongodb分片
分片存储在多台机器上的数据记录的过程,它是MongoDB的方法来满足数据增长的需求。一台机器上的大小的数据的增加,可能并不足够来存储数据,也不能提供可接受的读取和写入通过。分片解决问题的水平缩放。通过分片,你添加更多的机器支持数据增长的读取和写入操作需求。
十七、mongodb备份
MongoDB 数据转储
创建备份MongoDB中的数据库,应该使用mongodump命令。此命令将服务器的所有数据转储到转储目录。有许多可供选择,通过它可以限制的数据量或创建备份您的远程服务器。
语法:
mongodump命令的基本语法如下
>mongodump
恢复数据
恢复备份数据使用MongoDB 的 mongorerstore 命令。此命令将恢复所有的数据从备份目录。
语法
mongorestore命令的基本语法
>mongorestore