MongoDB是一个介于关系数据库和菲关系数据库之间的产品。它支持的数据结构非常松散,是类似json的bson格式。
MongoDB是面向集合的存储。MongoDB中,一个数据库包含多个集合,一个集合中包含多个文档。
$ sudo service mongodb start #linux下启动mongodb
$ mongo #进入MongoDB命令行操作界面
一个mongoDB可以创建多个数据库,使用show dbs可以查看所有数据库的列表,执行db命令可以查看当前数据库对象或集合。运行use命令可以链接到指定的数据库中。
> use test #连接到test数据库 数据库名可以是任意字符,但不能有空格,点好和$字符。
文档是MongoDB的核心。类似与SQLite数据库中的每一行数据。多个键及其关联的值放在一起就是文档。在mongodb中使用一种类json的bson存储数据,bson数据可以理解为在json基础上添加了一些json中没有的数据类型。
文档的逻辑关系有两种,一种是嵌入式关系,另一种是引用关系。
集合就是一组文档的组合,在mongobd可以存储不同的文档结构。
数据卡库的信息存储在集合中,他们使用统一的系统命名:DBNAME.system.*
db.system.namespaces 列出所有名字空间
db.system.indexs 列出所有索引
db.system.profile 列出数据库概要信息
db.system.users 列出访问数据库的用户
db.system.sources 列出服务器信息
> use mydb #创建数据库
> db #查看当前连接的数据库
> show dbs #查看当前链接的数据库 Mongdb不显示空的数据库
> db.dropDatabase() #销毁数据库
> use mydb #创建数据库mydb
> db.createCollection("users") #在mydb下创建集合users
> show collections #查看当前创建的集合
> db.users.drop() #删除user集合
> db.users.insert([{name:"jack",email:"[email protected]"},{name:"jim",email:"[email protected]"}])
> db.users.save([{name:"hello",email:"[email protected]"},{name:"world",email:"[email protected]"}])
Mongodb的save和insert的区别。
1.使用save和insert函数,若原对象不存在,它们都可以想collection插入数据,若已存在,save会调用update更新里面的记录,而insert则会忽略操作
2.insert可以一次性插入一个列表,不用遍历,效率高。save需要遍历列表,一个个插入。