Mongo2.0 数据库命令记录

92 阅读1分钟
  1. 启动 MongoDB 服务:mongod

  2. 启动 MongoDB Shell:mongo

  3. 连接到带有身份验证的数据库: 如果 MongoDB 实例启用了身份验证,你需要提供用户名和密码来连接到数据库。首先,使用 mongo 命令连接到 MongoDB 服务,使用 use myDatabase 切换到目标数据库,然后使用 db.auth() 方法进行身份验证: 再使用 db.auth("myUsername", "myPassword") 进行身份验证

    mongo
    use hz_test_S109999
    db.auth("hz_test_S109999","Vobsmcvszi5qYtw8")
    
  4. 线上项目使用管理员身份直接登录,可获取所有数据库列表

mongo -uroot -p`cat /data/save/mongodb_root` admin
  1. 给用户增加数据库权限:
    db.addUser("hz_test_S189999", "Vobsmcvszi5qYtw8",  { roles: ["readWrite"] })
    db.addUser("hz_test_S189999", "Vobsmcvszi5qYtw8",  { roles: ["dbOwner"] })
    db.addUser("hz_test_S189999", "Vobsmcvszi5qYtw8",  { roles: ["userAdminAnyDatabase "] })
    
  2. 一些条件查询语句:
    db.char.find({ account: "fb" })
    db.char.find({ account: "fb" }).count();//获取符合条件的总文档数量
    db.char.find({ account: "fb", lv: 1});//多个条件查询
    db.char.find({ account: "fb", lv: { $lt: 10 }});
    db.char.find({ account: "fb", lv: { $lt: 10 }}).count();//查询所有account为"fb",且等级小于十级的文档数量
    db.char.find({ account: "fb" }, { lv: 1, _id: 0 });//查询所有account为"fb"的文档,并输出其lv字段的值
    db.char.find({ account: "fb", lv: 33 }, { name: 1, _id: 0 });//查询所有account为"fb",且等级为33的文档,并输出其lv字段的值
    
  3. 一些更新语句:
    db.char.update({account: "fb"},{ $set: { account: "110035-fb" } },{ multi: false });//把account为"fb"的文档的 account字段值修改为"110035-fb",multi为false表示只更新一条符合条件的文档
    db.char.update({account: "fb", lv: { $lt: 20 }},{ $set: { account: "110035-fb" } },{ multi: false });//把account为"fb" 且 lv 小于 20 的文档的 account字段值修改为"110035-fb",multi为false表示只更新一条符合条件的文档
    
  4. 通过脚本更新字段:

8.1.创建update.js脚本

// 获取所有匹配的文档
var cursor = db.collection.find({ name: /^fb/ });

```js

// 遍历所有匹配的文档并更新 while (cursor.hasNext()) { var doc = cursor.next(); var newName = "110035" + doc.name; // 在 name 字段前加上 110035 db.collection.update( { _id: doc._id }, // 根据文档的 _id 查找文档 { $set: { name: newName } } // 更新 name 字段 ); }

## 8.2 在mongo shell中执行命令

```js
use hzw_hw01_S110035 //切换到目标数据库
load("/data/update_fb.js") //执行脚本