MongoDB

MongoDB

MongoDB是一个非关系型(NoSQL)的数据库

MongoChef 是mongdb的图形可视化软件
  • mongodb的操作

    #普通的开启模式
    mongod #开启命令
    #参数
    –dbpath=路径 #指定数据库的存储路径
    –logpath=路径.log #指定的日子文件
    –fork #默认在后台启动
    –config=/etc/mongod.conf #指定使用配置文件打开

    #创建一个简洁的打开方式
    #创建一个.sh
    在文件中写入:mongod --fork --config=/etc/mongod.conf

    #每次启动的时候
    sh xxx.sh

    #进入mongodb中
    mongo

    #关闭mongodb
    service mongod stop

    #关闭用户验证
    security:
    authorization: disabled

    #有些时候service mongod stop关闭不了
    1.查看进程号:ps -aux|grep mongo
    2.kill -9 进程号

数据库的操作

  • 创建数据库

    1.use 数据库的名字 #当数据库中没有集合,集合中没有数据,默认不显示Bson
    2.db.userinfo.insert({name:‘李野’,age:62,sex:‘男’,city:‘东北’})

  • 删除数据库

    #选择好数据库
    use 数据库
    db.dropDatabase()

  • 查看数据库

    show dbs

  • 查看当前使用的数据库

    db.getName()
    db

  • 断开连接

    1.exit
    2.quit()

  • 帮助

    help

集合的操作

  • 查看所有的集合

    show collections

  • 创建集合

    1.语法:db.createCollection(‘集合的名字’)
    2.语法:db.集合名.insert({key:value})

    #前者是创建了一个空的集合,后者是带有文档的集合

  • 删除集合

    db.集合的名字.drop()

文档的操作

  • 插入文档

    1.插入单条
    db.userinfo.insert({username:‘tom’,password:123456})

    2.插入多条
    db.userinfo.insert([{username:‘tom1’,password:123456},{username:‘tom2’,password:123456}])

    3.save()
    db.userinfo.save({name:‘jack’,age:90,sex:‘男’})
    db.userinfo.save([{name:‘jack’,age:90,sex:‘男’},{name:‘jack’,age:90,sex:‘男’}])

  • 更新文档

    #语法:
    db.userinfo.update(
    {query},
    {update},
    {
    {upset:}
    {multi:}
    {writeConcern:}
    }

    )

    #参数说明
    query:update的条件,相当sql中where
    update:set(直接更新),set(直接更新),set(),inc(在原有的基础累加)
    upset:可选项,如果记录不存在,是否当成新数据插入
    multi:可选项,默认会更新第一条记录,默认值是false,如果为true,更新所有
    writeConcern:可选,错误抛出的等级

    #修饰器
    $set:用来指定一个键的值,如果这个键不存在,则增加,有了以后直接修改
    $inc:如果已经有了该键,直接拼接

    #name:jack的年龄改为18
    db.userinfo.update({name:‘jack’},{$set:{age:18}})

    db.userinfo.update({name:‘jack’},{$inc:{age:18}})

    #修改所有的值
    db.userinfo.update({name:‘jack’},{$set:{age:18}},{multi:1})

    db.userinfo.save(
    {document}
    {
    {writeConcern:}
    }

    )

    #save()执行更新,直接覆盖的过程,一定要加上_id,主要是覆盖原来的值
    db.userinfo.save({name:‘李野很困’,age:18,sex:‘美男子’})

  • 删除文档

    #语法
    db.集合名字.remove(
    {query},
    {
    {justOne:},
    {writeConcern:}
    }
    )

    #参数说明
    query:当做必选,删除的条件
    justOne:在mongodb中为True只会删除符合条件的一条数据,默认为false,删除全部

    #删除name:jack的
    db.userinfo.remove({name:‘李野很困’},{justOne:true})

  • 查询

    #find()

    #查询全部的数据
    db.userinfo.find()

    #格式输出
    db.userinfo.find().pretty()

    #查找一条
    db.userinfo.findOne()

    #带有条件的查询
    db.userinfo.findOne({name:‘tom’})

  • 条件运算

    #大于 KaTeX parse error: Expected '}', got 'EOF' at end of input: …nfo.find({age:{gt:20}}).pretty()
    #大于等于 KaTeX parse error: Expected '}', got 'EOF' at end of input: …nfo.find({age:{gte:20}}).pretty()
    #小于 KaTeX parse error: Expected '}', got 'EOF' at end of input: …nfo.find({age:{lt:20}}).pretty()
    #小于等于 KaTeX parse error: Expected '}', got 'EOF' at end of input: …nfo.find({age:{lte:20}}).pretty()
    #不等于KaTeX parse error: Expected '}', got 'EOF' at end of input: …nfo.find({age:{ne:62}}).pretty()
    #使用_id进行查询
    db.userinfo.find({"_id" : ObjectId(“5cac65bcb503068e96b400d2”)}).pretty()
    #统计
    db.userinfo.find().count()
    #正则
    db.userinfo.find({name:/野/})
    #以字结尾的
    db.userinfo.find({name:/困$/})

  • and和or

    #and
    db.userinfo.find({name:/野/,sex:‘男’})

    #$or
    db.集合.find(
    {
    条件,
    $or:[{条件1},{条件n}]
    }
    )

    #年龄
    #select * from a where name=‘李野’ and (age=18 or age>=20);
    db.userinfo.find({name:‘李野’,$or:[{age:18},{age:62}]})

  • limit和skip

    #limit()
    #skip() 跳过多少条
    #跳过前两条
    db.userinfo.find().skip(2)
    #获取前两条
    db.userinfo.find().limit(2)
    #先略过前两条,在获取下两条
    db.userinfo.find().skip(2).limit(2).pretty()

  • 排序

    #sort(条件)
    #注意:升序1,降序是-1

    db.userinfo.find().sort({age:-1}).skip(1).limit(2)

pymongo

pip install pymongo

from pymongo import MongoClient
from bson.objectid import ObjectId

#连接
conn = MongoClient(host='10.11.58.103',port=27017)

#选择数据库
db = conn.python
#查询
res = db.userinfo.find({'_id':ObjectId("5cac65bcb503068e96b400d2")})

for i in res:
    print(i)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值