mongo基础整理

转自本人旧博客


title: mongo
date: 2017-07-24 23:44:07
tags: mongo
categories: 数据库


基础整理

一、基础操作

  • mac安装
    1. brew update
    2. brew install mongodb
  • 启动
    1. mongod
    2. mongo
  • 关闭

    1. ctrl+c
    2. mongo
      > use admin db
      > db.shutdownServer({force: true})
      在这里插入图片描述
  • 修复:

    1. 删除mongo/mongod.lock
    2. mongod -f /etc/mongod.conf --repair
    3. 另一教程里的:mongod --repair --dbpath /mongodb/ --repairpath /mongodb/repair/
  • 设置密码

    进入admin数据库,设置密码
    use admin
    db.createUser({ user: “useradmin”, pwd: “adminpassword”, roles: [{ role: “userAdminAnyDatabase”, db: “admin” }] })

    • mongodb中的用户是基于身份role的
    • 该管理员账户的 role是 userAdminAnyDatabase。 ‘userAdmin’代表用户管理身份,’AnyDatabase’ 代表可以管理任何数据库。
    • 验证设置是否成功:

      db.auth(“useradmin”, “adminpassword”)
      如果返回1,则表示成功。

二、pymongo语法

update:

1. false 如果不存在,不插入
2. true 查出来的记录都更新

运算符

  • $gt 大于
  • $lt 小于
  • $gte 大于等于
  • $lte 小于等于
样例:

大于0219小于0320

{$gt:"2017-02-19", $lt:"2017-03-20"}

降序排列,限制2

db.Hacked.find({"keyword": "fghk"}).sort({sqlite_id: -1}).limit(2)

查status字段值为“p”或“d”的

db.users.find({status: {$in: ["p", "d"]}}

status为a, age小于30的

db.users.find({status: "a", age:{$lt:30}})

三、其他

1. 数据备份

语法

mongodump -h dbhost -d dbname -o dbdirectory

  • -h:MongoDB所在服务器地址
  • -d:需要备份的数据库名
  • -o:备份的数据存放目录(此目录需要提前建立,默认会建立dump/)

2. 数据恢复

语法

mongorestore -h <:port> -d dbname

  • –host <:port>, -h <:port>:
    • 服务器地址,默认为: localhost:27017
  • –db , -d :
    • 需要恢复的数据库实例,例如:test,当然这个名称也可以和备份时候的不一样,比如test2
  • –drop:
    • 恢复的时候,先删除当前数据,然后恢复备份的数据。就是说,恢复后,备份后添加修改的数据都会被删除,慎用哦!
  • <path>:
    • 设置备份数据目录,例如:c:\data\dump\test。
    • 不能同时指定 和 --dir 选项
  • –dir:指定备份的目录
    • 不能同时指定 和 --dir 选项。

3.配置

我的配置文件在/usr/local/opt/mongo/bin/mongod.conf(不知道配置文件在哪,可以用locate mongod查找)
  • bind_ip = 127.0.0.1 mongodb绑定IP地址,只能本地访问数据库,不能指定默认本地所有IP

  • 使配置生效:

    mongod --fork --config mongod.conf

四、pymongo语法补充

  • 查询数据为多个字典嵌套
    • 例:数据为 {“dic1”: {“dic2”: “test”}, “dic”: “test”}
      • db.tables.find({“dic1.dic2”: “test”})
  • 查询有phone字段的所有数据
    • db.trace.find({“phone”: /.*/}).count()
  • 查询phone包含****的数据
    • db.trace.find({“phone”: /*{4}.*/}).count()
  • 查询phone里没有****的数据
    • db.trace.find({“phone”: {"$not": /*{4}.*/}}).count()

正则:regex

  • import re或$regex
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值