nosql之mongodb

转自个人网站:noSQL学习之MongoDB(1) - Tron ' blog

noSQL学习之MongoDB(2) - Tron ' blog

MongoDB是非关系型数据库中的文档数据库
文档数据库一般用类JSON格式存储数据,存储的内容是文档型的。这样也就有机会对某些字段建立索引,实现关系数据库的某些功能,但不提供对参照完整性和分布事务的支持。 ——摘自GitHub
SQL MongoDB 解释(SQL/MongoDB)
database database 数据库/数据库
table collection 二维表/集合
row document 记录(行)/文档
column field 字段(列)/域
index index 索引/索引
table joins --- 表连接/嵌套文档
primary key primary key 主键/主键(_id字段)
上表为MongoDB与sql的对比
通过Shell操作MongoDB:
打印出数据库

show dbs

创建并切换到school数据库:

use school

删除当前数据库

db.dropDatabase()

创建一个集合(相当于sql中的表)

db.createCollection("colleges")

删除一个集合

db.college.drop()

向一个集合中插入数据:

db.student.insert({stuid: 1001, name: '小王', age: 20})#在MongoDB中插入文档时如果集合不存在会自动创建集合

查看所有文档

db.students.find()

更新集合中的文档

db.students.update({stuid: 1001}, {'$set': {gender: '男'}})#更新集合为students的stuid等于1001的文档,设置一个新的值

上述第一个参数可以给一个键值对来确定某一个文档,第二个参数即为需要更新的值

更新或插入

db.students.update({stuid: 1003}, {'$set': {name: 'Tom', gender: '男'}},upsert=true)

最后一个参数为真时,如果没有匹配的文档,则会创建一个文档

以整理的形式查看集合中的全部文档

db.students.find().pretty()

删除集合中的文档

db.students.remove({stuid:"1003"})

MongoDB有它自己内置的查询条件:
$lt, $lte, $gt, $gte
以上四个分别表示为:< 、 <= 、 > 、 >=
demo1:

db.students.find({stuid: {'$gt': 1001}}, {_id: 0, name: 1, tel: 1}).pretty()

查询stuid大于1001的文档只显示name和tel字段


demo2:

db.students.find({'$or': [{name: 'Tron'}, {gender: '男'}]}, {_id: 0, name: 1, gender: 1}).pretty()

查询名字为Tron或者性别为男的文档,显示他的名字和性别


demo3:

db.students.find().skip(1).limit(1).pretty()

查询学生的文档跳过第一条文档且限制只展示一个文档


demo4:

db.students.find({}, {_id: 0, stuid: 1, name: 1}).sort({stuid: -1})

查询文档,且只展示文档的stuid与name,sort方法可以指定文档的一个域(等于字段),1为正序,-1为倒序


demo5:

db.students.ensureIndex({name: 1})

以名字建立索引

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值