乐趣区

关于前端:MongoDB数据库操作

数据库操作

在 shell 启动 mongodb:

mongo

  • 展现所有数据库
show dbs
  • 查看以后数据库下的汇合
db.getCollectionNames()
  • 创立汇合
db.createCollection(汇合名)
  • 常看状态
db.statc()
  • 查看版本
db.version()
  • 获取数据库 ip 地址
db.getMongo() // connection to 127.0.0.1:27017
  • 删除数据库 (删除以后所在的数据库)
db.dropDatabase()    
  • 进入数据库 (通过 show dbs 展现之后进入,进入了没有的数据库则是创立行为)
use 数据库名 
  • 获取以后所在的数据库名
db.getName()

文档的操作

增加
db.users.insertOne({username: 'yangli', password: 'abc123'})
db.users.insertOne({username: 'haozeliang', email: 'hzl@126.com'})
db.users.insertOne({"username": 1, password: 123})
db.users.insertMany([{username: 'gaojie', password: 'gj', email: 'gj@126.com'}, {username: 'xinyi', password: 123, email: 123}])
db.users.insert([{username: 'yangli'}, {useranme: 'zeliang'}])
db.users.save()
批改
db.users.update({username: 'yangli'}, {username: 'yl'})

// 1、如果第二个参数是一个对象,后边两个参数有效
// 2、如果第二个参数是通过 $set 设置的话,后两个参数才无效
// 3、后两个参数的第一个参数:true/ 如果数据查问不到,就创立 false/ 如果数据查问不到,就什么都不做
// 4、后两个参数第第二个参数:true/ 更新多条,false/ 更新一条
db.users.update({username: 'gp145'}, {$set: {username: 'yl'}}, true, true)
// 5、如果应用 updateMany, 就不须要传递后两个参数第二个了
db.users.updateMany({username: 'yl'}, {$set: {username: 'yangli'}})
删除
db.users.remove({username: 'xinyi'}, true)

查找

db.movies.find({}, {nm: 1, _id: 0, rt: 1})
db.movies.find({}, {nm: 1, _id: 0, rt: 1}).sort({rt: -1})
db.movies.find({}, {nm: 1, _id: 0, rt: 1}).limit(10)
db.movies.find({}, {nm: 1, _id: 0, rt: 1}).sort({rt: -1}).limit(10)
db.movies.find({}, {nm: 1, _id: 0, rt: 1}).sort({rt: -1}).limit(3).skip(6)
db.movies.find({rt: {$gte: '2019-10-14'}}, {nm: 1, _id: 0, rt: 1})
db.movies.find({rt: {$gte: '2019-10-14'}}, {nm: 1, _id: 0, rt: 1})
db.movies.find({rt: {$gte: '2019-10-14'}}, {nm: 1, _id: 0, rt: 1}).count()
db.movies.find({rt: {$lte: '2019-10-14'}}, {nm: 1, _id: 0, rt: 1}).count()
db.movies.find({nm: / 小 /}, {nm: 1, _id: 0, rt: 1}).sort({rt: -1})
退出移动版