基本常用命令
1.数据库操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| use 数据库名称 use articledb
show dbs 或 show databases
db
db.dropDatabase()
|
2.集合操作
1 2 3 4 5 6 7 8
| db.createCollection(name)
当向一个集合中插入一个文档的时候,如果集合不存在,则会自动创建集合。
db.集合.drop()
|
3.文档基本CRUD
文档插入
1 2 3 4 5 6 7 8
| db.comment.insert( { "articleid":"100000", "content":"今天天气真好", "userid":"1001", } )
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| db.comment.insertMany([ { "_id":"1", "articleid":"100001", "content":"我们不应该把清晨浪费在手机上,健康很重要,一杯温水幸福你我 他。", "userid":"1002","nickname":"相忘于江湖", "createdatetime":new Date("2019-08//05T22:08:15.522Z"), "likenum":NumberInt(1000), "state":"1" }, { "_id":"2", "articleid":"100001","content":"我夏天空腹喝凉开水,冬天喝温开水", "userid":"1005","nickname":"伊人憔悴", "createdatetime":new Date("2019-08-05T23:58:51.485Z"), "likenum":NumberInt(888), "state":"1" }, { "_id":"4", "articleid":"100001", "content":"专家说不能空腹吃饭,影响健康。", "userid":"1003", "nickname":"凯撒", "createdatetime":new Date("2019-08-06T08:18:35.288Z"), "likenum":NumberInt(2000),"state":"1" } ]);
|
如果某条数据插入失败,将会终止插入,但已经插入成功的数据不会回滚掉。
因为批量插入由于数据较多容易出现失败,因此,可以使用try catch进行异常捕捉处理,测试的时候可以不处理。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| try { db.comment.insertMany([ { "_id":"1", "articleid":"100001", "content":"我们不应该把清晨浪费在手机上,健康很重要,一杯温水幸福你我他。", "userid":"1002", "nickname":"相忘于江湖", "createdatetime":new Date("2019-08- 05T22:08:15.522Z"), "likenum":NumberInt(1000), "state":"1" }, { "_id":"2","articleid":"100001", "content":"我夏天空腹喝凉开水,冬天喝温开水", "userid":"1005", "nickname":"伊人憔悴", "createdatetime":new Date("2019-08-05T23:58:51.485Z"), "likenum":NumberInt(888), "state":"1" }, ...... ]); } catch (e) { print (e); }
|
文档基本查询
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| db.comment.find()
db.comment.find({})
db.comment.find( { "userid":"1003" } )
db.comment.findOne( { "articleid":"100001" } )
db.comment.find( { userid:"1003" }, { userid:1, nickname:1 } )
|
文档更新
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
| db.comment.update( { _id:"1" }, { likenum:NumberInt(1001) } ) 执行后发现此条文档只剩likenum字段
db.comment.update( { _id:"2" }, { $set:{ likenum:NumberInt(889) } } )
db.comment.update( { userid:"1003" }, { $set:{ nickname:"zzh" } } )
db.comment.update( { userid:"1003" }, { $set:{ nickname:"zzh" } }, { multi:true } )
db.comment.update( { _id:"3" }, { $inc:{ likenum:NumberInt(1) } } )
|
删除文档
1 2 3 4 5 6 7 8 9 10 11 12
| db.集合名称.remove(条件)
db.comment.remove( { _id:"1" } )
db.comment.remove({})
|
4.分页查询
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| db.comment.count()
db.comment.count({userid:"1003"})
db.comment.find().limit(3)
db.comment.find().skip(3)
db.comment.find().skip(0).limit(2)
db.comment.find().skip(2).limit(2)
db.comment.find().skip(4).limit(2)
|
5.排序查询
sort() 方法对数据进行排序,sort() 方法可以通过参数指定排序的字段,并使用 1 和 -1 来指定排序的方式,其中 1 为升序排列,而 -1 是用于降序排列。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| db.COLLECTION_NAME.find().sort({KEY:1}) 或 db.集合名称.find().sort(排序方式)
db.comment.find( {}, { _id:0, userid:1, likenum:1 } ).sort( { userid:-1, likenum:1 } )
|
6.更多查询
正则的复杂条件查询
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| db.collection.find({field:/正则表达式/}) 或 db.集合.find({字段:/正则表达式/})
db.comment.find( { content:/开水/ } )
db.comment.find( { content:/^专家/ } )
|
本部分查询笔记,会导致Algolia索引上传失效,暂时未解决,因此用图片形式展示
比较查询

包含查询

条件连接查询


7.常用命令总结
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| use articledb
db.comment.insert({bson数据})
db.comment.find()
db.comment.find({条件})
db.comment.findOne({条件})
db.comment.find({条件}).limit(条数)
db.comment.find({条件}).skip(条数)
db.comment.update({条件},{修改后的数据}) 或 db.comment.update({条件},{$set:{要修改部分的字段:数据})
db.comment.update({条件},{$inc:{自增的字段:步进值}})
db.comment.remove({条件}) 统计查询:db.comment.count({条件})
db.comment.find({字段名:/正则表达式/})
db.comment.find({字段名:{$gt:值}})
db.comment.find({字段名:{$in:[值1,值2]}}) 或 db.comment.find({字段名:{$nin:[值1,值2]}})
db.comment.find({$and:[{条件1},{条件2}]}) 或 db.comment.find({$or:[{条件1},{条件2}]})
|