Mongodb的基本操作

xiaoxiao2025-07-07  6

use xxx //创建数据库 db.dropDatabase() //删除数据库 db.xxx.drop() //删除xxx数据库 db.xxx.find() //查询

//添加管理员 use admin db.createUser({user:“admin”,pwd:“password”,roles:[“root”]})

db.getCollectionNames() db.system.users.find()//查看用户 db.auth(“admin”, “password”)//测试认证是否添加成功

//自建数据库测试 use zouyang db.createUser({user: “zouyangUser”, pwd: “123456”, roles: [{ role: “dbOwner”, db: “zouyang” }]}) db.auth(“zouyangUser”, “123456”)//测试认证是否添加成功

//插入数据 db.zouyang.insert({title: ‘MongoDB 教程’, description: ‘MongoDB 是一个 Nosql 数据库’, by: ‘菜鸟教程’, url: ‘http://www.runoob.com’, tags: [‘mongodb’, ‘database’, ‘NoSQL’], likes: 100 })

db.zouyang.insert({title: ‘Java 教程’, description: ‘Java 是一个 面向对象’, by: ‘zouyang教程’, url: ‘http://www.runoob.com’, tags: [‘java’,‘Language’], likes: 101 })

db.zouyang.insert({title: ‘1’, description: ‘Test 是一个 Test’, by: ‘test教程’, url: ‘http://www.runoob.com’, tags: [‘test’,‘test’], likes: 102 })

db.zouyang.insert({title: 1, description: ‘Test 是一个 Test’, by: ‘test教程’, url: ‘http://www.runoob.com’, tags: [‘test’,‘test’], likes: 102 })

db.zouyang.insert({description: ‘Test 是一个 Test’, by: ‘test教程’, url: ‘http://www.runoob.com’, tags: [‘test’,‘test’], likes: 102 })

//查询所有数据 db.zouyang.find()

//条件查询 db.zouyang.find({“url”:“http://www.runoob.com”}).pretty() //相当于 where url=“http://www.runoob.com”

//比较判断 (>) 大于 - $gt (<) 小于 - $lt (>=) 大于等于 - $gte (<= ) 小于等于 - $lte

db.zouyang.find().pretty() //查询所有 db.zouyang.find().count() //统计个数

db.zouyang.find({title:‘title1’}) //相当于 select * from table where title=“title1”; db.zouyang.find({“likes” : {KaTeX parse error: Expected 'EOF', got '}' at position 8: gt : 99}̲}) //相当于 select…gte : 100}}) //相当于 select * from table where likes >100; db.zouyang.find({“by”: “菜鸟教程”}).pretty() //相当于 where by=“菜鸟教程” db.zouyang.find({“by”:“菜鸟教程”, “title”:“MongoDB 教程”}).pretty() //相当于 where by=“菜鸟教程” and title=“MongoDB 教程” db.zouyang.find({KaTeX parse error: Expected 'EOF', got '}' at position 43: … "MongoDB 教程"}]}̲).pretty() db.z…or:[{“by”:“菜鸟教程”},{“title”: “MongoDB 教程”}]}) db.zouyang.find({by:/教程/}); //相当于select * from table where by like “%教程%”;//模糊匹配查找 db.zouyang.find({by:/^菜鸟/}); //相当于select * from table where by like “菜鸟%”

db.zouyang.find().sort({likes:1}) //顺序排序 db.zouyang.find().sort({likes:-1}) //倒序排序

db.zouyang.find().limit(1)//limit db.zouyang.find({“by”: “zouyang教程”}).limit(1)//limit + 条件

db.zouyang.find().limit(1).skip(1) //skip表示跳过指定数量的记录 db.zouyang.aggregate({$skip:2}); //skip表示跳过前2条记录

db.zouyang.find({“title”:{$type:2}}) //查询出title参数的值类型为String的记录

//类型对照表 Double 1 String 2 Object 3 Array 4 Binary data 5 Undefined 6 已废弃。 Object id 7 Boolean 8 Date 9 Null 10 Regular Expression 11 JavaScript 13 Symbol 14 JavaScript (with scope) 15 32-bit integer 16 Timestamp 17 64-bit integer 18 Min key 255 Query with -1. Max key 127

//创建索引 db.zouyang.createIndex({“likes”:1})//升序 db.zouyang.createIndex({“likes”:-1})//降序 db.zouyang.createIndex({“title”:1,“likes”:-1},{background: true})//复合索引(创建索引工作在后台执行) db.zouyang.createIndex({“by”:1}) //对字段by加索引后1000万数据查询速度从6秒到90毫秒,提高200倍 db.zouyang.createIndex({“tags”:-1})

//聚合函数(运算) db.zouyang.aggregate([{KaTeX parse error: Expected '}', got 'EOF' at end of input: group:{_id:"tags",num_tutorial:{$sum : 1}}}])//计算出tags的值相同的记录的个数

$sum->计算总和 $avg->计算平均值 $min->最小值 $max->最大值

//管道操作符 db.zouyang.aggregate({KaTeX parse error: Expected 'EOF', got '}' at position 27: …tle:1,author:1}}̲); db.zouyang.a…skip:2}); //skip表示跳过前2条记录 db.zouyang.aggregate({$sort:{title:1,author:1}}); //排序

//修改数据 db.zouyang.update({“title”:“title1”}, {KaTeX parse error: Expected 'EOF', got '}' at position 27: …:"updateTags1"}}̲) db.zouyang.up…set:{“tags”:“updateTags1”}}, false, true)//完整修改格式

update命令格式: db.collection.update(criteria,objNew,upsert,multi) //criteria:查询条件 //objNew:update对象和一些更新操作符 //upsert:如果不存在update的记录,是否插入objNew这个新的文档,true为插入,默认为false,不插入 //multi:默认是false,只更新找到的第一条记录。如果为true,把按条件查询出来的记录全部更新

//删除数据 db.zouyang.remove({title:“title2”})

//in只能是int类型的,字符串无法使用 db.zouyang.find({likes: {$in: [100,101,102]}});

转载请注明原文地址: https://www.6miu.com/read-5032721.html

最新回复(0)