MongoDB数据库的基本操作
Posted AustinJoe
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongoDB数据库的基本操作相关的知识,希望对你有一定的参考价值。
介绍
-
-
MongoDB中将数据存储为一个文档,文档由键值对(key=>value)组成,MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。
基本概念
-
和关系型数据库一样,MongoDB存在数据库的概念,一个MongoDB可以创建多个数据库。
-
多个键及其关联的值有序地放置在一起就是文档,文档时MongoDB中数据的基本单元,是MongoDB的核心概念,很类似关系数据库中的行(记录)。
-
RDBMS(关系型数据库管理系统) | MongoDB |
Database(数据库) | Database(数据库) |
Table(表) | Collection(集合) |
Record(记录) | Document(文档) |
库级操作
use DATABASE #切换/创建库 show dbs #查看所有数据库(空库不会显示) db.dropDatabase() #删除当前数据库 db #查看当前所在库
集合操作
db.createCollection(name, options) #创建集合 用引号引起来 show collections #查看当前数据库的集合 db.集合名称.drop() #删除集合
文档操作
插入
db.集合名称.insert(document) #插入文档, 集合不存在会自动创建, 不能插入重复id的数 #_id 是12个字节十六进制数在一个集合的每个文档是唯一的。 db.student.insert({name:‘句号‘}) db.student.insert({name:‘句号‘, age:18}) db.student.insert({_id:1, name:‘句号‘, age:18}) db.student.insert([ {name:‘juhao‘, sex:‘男‘, age:18}, {name:‘nanbei‘, sex:‘男‘, age:19}, {name:‘budong‘, sex:‘男‘, age:20}, ])
查询
db.集合名称.find() #查询所有 db.集合名称.find().pretty() #结构化显示 db.集合.find({name:10}).pretty() where name = 10 db.集合.find({name:{$ne:10} }).pretty() where name != 10 db.集合.find({name:{$gt:10} }).pretty() where name > 10 db.集合.find({name:{$lt:10} }).pretty() where name < 10 #后面加个e就是加等于 #and逻辑 {$and:[{expression1}, {expression1}, ...] } #or逻辑 {$or:[{expression1}, {expression1}, ...] } #where sex=‘男‘ and age > 18 db.table.find({ $and:[ {sex:‘男‘}, {age:{$gt:18}} ] }) #where sex=‘女‘ or age =18 db.table.find({ $or:[ {sex:‘女‘}, {age:18} ] })
查询条件
and条件 {$and:[{expression1},{expression2},{expression3}......]}
or条件 {$or:[{expression1},{expression2},{expression3}......]}
and和or的混用 db.table.find({$or:[{$and:[{sex:‘女‘}, {age:18}]},{$and:[{sex:‘男‘}, {age:{$gt:18}}]}]})
操作符 | 描述 |
$ne | 不等于 |
$gt | 大于 |
$lt | 小于 |
$gte | 大于等于 |
$lte | 小于等于 |
更新
db.table.insert({ name: ‘juhao‘, age: 18, height: 180, sex:‘男‘, virtue: [‘帅‘, ‘帅‘, ‘帅‘], }) db.table.update({sex:‘男‘},[{age:20},{height:180}]) #更新第一条找到的文档全部值 db.table.update({sex:‘男‘}, {$set:{age:666, agee:6666}}) #修改第一条找到的文档, key不存在就添加 db.table.update({sex:‘男‘}, {$set:{sex:‘女‘}}, {multi:true}) #更新满足条件的全部数据 #前面查询的条件也可以用在这里, wherer sex=男 and age>18 db.table.update( {$and:[{sex:‘男‘}, {age:{$gt:18}}]}, {$set:{age:666}}, )
删除
db.集合名称.remove( <query>, <justOne> ) db.table.remove({age:18}) #删除所有满足条件的 db.table.remove({sex:‘男‘}, {justOne:true}) #删除一条 #where sex=‘男‘ and age>18 db.table.remove({ $and:[ {sex:‘男‘}, {age:{$gt:18}} ] })
以上是关于MongoDB数据库的基本操作的主要内容,如果未能解决你的问题,请参考以下文章
ios - Heroku 和 MongoDb 上的自定义解析服务器错误 3080:JSON 文本没有以数组或对象开头,并且允许未设置片段的选项