初识:
-
MongoDB 是一个基于分布式文件存储的数据库
-
前端开发选择mongodb的理由
javascript操作json最方便了,而mongodb也是json存储的,mongodb的操作语言是javascript,一点违和感都没有。用mongodb也很方便,不需要事先设置数据结构,字段随时可以加,要是用来保存RESTFUL API请求与返回数据那就更方便了,不论数据有多复杂,直接扔进去就好了。
- MongoDB 将数据存储为一个文档 文档类似于 JSON 对象
数据库
//切换数据库
use runoob
//查看所有数据库
show dbs
//删除当前数据库
db.dropDatabase()
集合(表)
// 创建集合
db.createCollection("RUNOOB")
//查看所有的集合
show collections
show tables
--按条件创建
//创建固定集合 mycol,整个集合空间大小 6142800 KB,
//文档最大个数为 10000 个
db.createCollection("mycol", {
capped: true,
autoIndexId: true,
size: 6142800,
max:10000
})
--在没有集合的情况下
//你不需要创建集合。当你插入一些文档时,MongoDB 会自动创建集合
db.mycol2.insert({"name" : "菜鸟教程"})
--删除集合
db.collection.drop()
文档(记录)
--插入文档
//MongoDB 使用 insert() 或 save() 方法向集合中插入文档
//db.COLLECTION_NAME.insert(document)
db.col.insert({
title:'Mongo教程',
by:'Mr-jies',
url:'www.airwhale',
tags:['mongodb','database','nosql'],
likes:1000
})
--更新集合
//query : update的查询条件,类似sql update查询内where后面的。
//update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
//upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
//multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
//writeConcern :可选,抛出异常的级别。
--更新标题(title):修改多条相同的文档,
db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}},{multi:true})
--更新标题(title):修改一条相同的文档,
db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}})
--替换了 _id 为 5ea6ee38821a0000610030c7的文档数据
db.col.save({
"_id" : ObjectId("5ea6ee38821a0000610030c7"),
"title" : "MongoDB55555555",
"description" : "MongoDB 是一个 Nosql 数据库",
"by" : "Runoob",
"url" : "http://www.runoob.com",
"tags" : [
"mongodb",
"NoSQL"
],
"likes" : 110
})
//只更新第一条记录:
db.col.update( { "count" : { $gt : 1 } } , { $set : { "test2" : "OK"} } );
//全部更新:
db.col.update( { "count" : { $gt : 3 } } , { $set : { "test2" : "OK"} },false,true );
//只添加第一条:
db.col.update( { "count" : { $gt : 4 } } , { $set : { "test5" : "OK"} },true,false );
//全部添加进去:
db.col.update( { "count" : { $gt : 5 } } , { $set : { "test5" : "OK"} },true,true );
//全部更新:
db.col.update( { "count" : { $gt : 15 } } , { $inc : { "count" : 1} },false,true );
//只更新第一条记录:
db.col.update( { "count" : { $gt : 10 } } , { $inc : { "count" : 1} },false,false );
//删除全部by为菜鸟教程的文档
db.col.remove({'by':'菜鸟教程'})
//删除一行title为MongoDB 教程的文档
db.col.remove({'title':'MongoDB 教程'},1)
--查询文档
db.col.find()
db.col.findOne()
db.col.find().pretty()