MongoDB 常用命令与经验

Mongo基本设置

1. mongod服务开启: mongod –auth –dbpath /var/lib/mongodb
2. mongodb数据及日志文件存储位置: /var/lib/mongodb /var/log/mongodb
3. mongodb 连接服务及打开shell: mongo 用户所属数据库 -u 用户名 -p 密码 ,也可以直接执行命令“mongo”打开shell,然后进入到对应的数据库中再执行“db.auth(‘user’,’passwd’)”

注意:除了admin数据库的用户对其他数据库都有操作权限之外,每个数据库的用户只对自己的数据库有操作权限

4. 远程连接mongodb mongo 主机ip:27017/数据库 -u 用户名 -p 然后再输入密码


MongoDB 常用命令

1. 查看数据库系统信息

  • show dbs
  • show collections
  • db.stats() :查看当前使用的数据库的信息
  • db.myCollection.stats():查看当前数据库中myCollection集合的信息

2. 查看数据库集合的信息

  • db.myCollection.find():找到myCollection集合中的全部信息,后面常用的函数:

    pretty():打印出找到的所有条目、
    hasNext():判断当前集合是否还有下一条条目
    next():显示当前条目,并将cursor移动到下一个
    forEach(<func>):遍历当前集合的每一个条目,并对其执行func函数

3. 创建用户及修改密码: 进入到对应的数据执行如下代码创建用户

db.createUser(
    {
        user: 'xxx',
        pwd: 'xxx',
        roles: [
            {role:'read',db:'test'}
        ]
    }
)

执行如下代码修改密码

db.changeUserPassword('用户名','密码')

4. 插入命令

db.mycolleciton.inser()
db.myCollection.insertOne({
    name:"果冻",
    score:{
        "数学":100,
        "音乐":94, //中文字符串也可以作为key
})
db.myCollection.insertMany()

5. 查询命令

db.myCollection.find({name:"果冻"})

db.myCollection.find({name:{$in:[ "果冻", "D"]}}) //$表示运算符

db.inventory.find( { status: "A", qty: { $lt: 30 } } ) //and

db.inventory.find( { $or: [ { status: "A" }, { qty: { $lt: 30 } } ] } ) //or

db.myCollection.find( { size: { h: 14, w: 21, uom: "cm" } } ) //嵌套查询,被嵌套项必须全部包含,如不能只有“{h:14}”

db.myCollecton.find({"size.h":14})//嵌套查询,用dot来连接嵌套项,但是整个表达式需用引号包住

//对于包含 tags:["red","blank"] 键值对document的collection
db.myCollection.find({tags:["red","blank"]})
db.myCollection.find({tags:"red"})

//dim_cm是一个Array,此外列表中还可以嵌入document
db.myCollection.find( { dim_cm: { $gt: 15, $lt: 20 } } )//dim_cm中任意元素满足gt和lt的任一项
db.myCollection.find({dim_cm:{$elemMatch:{$gt:15,$lt:20}}})//dim_cm中任意元素同时满足gt和lt
db.myCollection.find({"dim_cm.1":{$gt:20}})//dim_cm中的第二个元素大于20
dm.myCollection.find({dim_cm:{$size:3}})

//project field(投影)
db.inventory.find({status:"A"},{item:1}) //相当于select _id,item from dnventory where statud="A",可以声明 _id:0取消_id投影
db.inventory.find({status:"A"},{instock:{$slice:-1}) //$slice表示选择instock的最后一个

//对于为空的键或者不包含的键
db.inventory.find({item:null})//所有item为空后者不包含item的document
db.inventory.find({item:{$type:10}})//所有item为空的document
db.inventory.find({item:{$exits:false}})//所有不包含item的document

6. 更新命令

//对于匹配不到document的命令,update和replace会插入一个document
db.inventory.update()

db.inventory.updateOne(
   { item: "paper" },
   {
     $set: { "size.uom": "cm", status: "P" },
     $currentDate: { lastModified: true }
   }
)//如果lastModified不存在,会创建,update不能更改_id,除非用replace

db.inventory.updateMany()

db.inventory.replaceOne(
   { item: "paper" },
   { item: "paper", instock: [ { warehouse: "A", qty: 60 }, { warehouse: "B", qty: 40 } ] }
)

7. 删除命令

db.inventory.deleteMany({}) //删除所有
db.inventory.deleteOne({}) //删除匹配的第一个
db.inventory.delete({})

Mongo shell数据类型

1. Date(): return current date as string
2. NumberLong(“12345678”) NumberInt(“12345678”) NumberDecimal(“1213.423452342”): mongo shell将所有的数都默认视为64位浮点数,NumberLong,NumberInt分别将数据作为string接收作为64位和32位整数处理,NumberDecimal将接收String作为128位的浮点数处理


未完,待续

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值