mongodb 笔记

1、每次启动需要配置启动文件
  mongod --dbpath G:\data\db
  执行完上面命令再打开一个新的窗口执行 mongo
  也可通过后台参数启动mongo:
  ./mongod -dbpath /data/mongo/ -logpath /data/mongo/mongo.log -logappend -fork -port 27017
 
 
2、show dbs #查看所有数据库
  use mydb #使用mydb数据库,没有当前数据库则创建
  show collections #查看该数据库下所有的表
 
3、MongoDB中的查询
  db.col.find() #查看col集合下所有的document(document相当于mysql中的row)
  db.col.find().pretty() #以格式化的方式来显示所有文档
  db.col.find({"by":"菜鸟教程"}) #条件查询相当于sql中 where by = '菜鸟教程'
  db.col.find({"likes":{$lt:50}}) # where likes < 50
  db.col.find({"likes":{$lte:50}}) #where likes <= 50
  db.col.find({"likes":{$gt:50}}) # where likes > 50
  db.col.find({"likes":{$gte:50}}) #where likes >= 50
  db.col.find({"likes":{$ne:50}}) #where likes != 50
  db.col.find({"by":"菜鸟教程", "title":"MongoDB 教程"}) #WHERE by='菜鸟教程' AND title='MongoDB 教程'
  db.col.find({$or:[{"by":"菜鸟教程"},{"title": "MongoDB 教程"}]}) #WHERE by='菜鸟教程' OR title='MongoDB 教程'
  db.col.find({"likes": {$gt:50}, $or: [{"by": "菜鸟教程"},{"title": "MongoDB 教程"}]}) #where likes>50 AND (by = '菜鸟教程' OR title = 'MongoDB 教程')
 
4、MongoDB中的删除
  db.col.remove({'title':'MongoDB 教程'}) #移除 title 为 'MongoDB 教程' 的文档
  db.col.remove({}) #删除col中的数据
 
5、两种MongoDB中的插入
  db.col.insert({title: 'MongoDB 教程', description: 'MongoDB 是一个 Nosql 数据库', by: '菜鸟教程', url: 'http://www.runoob.com', tags: ['mongodb', 'database', 'NoSQL'], likes: 100 })
 
  document=({title: 'MongoDB 教程', description: 'MongoDB 是一个 Nosql 数据库', by: '菜鸟教程', url: 'http://www.runoob.com', tags: ['mongodb', 'database', 'NoSQL'], likes: 100 });
  db.col.insert(document)
 
6、MongoDB中的更新
  db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}}) #通过 update() 方法来更新标题(title)
 
  #save() 方法通过传入的文档来替换已有文档
  db.col.save({     "_id" : ObjectId("56064f89ade2f21f36b03136"), "title" : "MongoDB", "description" : "MongoDB 是一个 Nosql 数据库", "by" : "Runoob", "url" : "http://www.runoob.com", "tags" : [ "mongodb", "NoSQL" ], "likes" : 110 }) #替换了 _id 为 56064f89ade2f21f36b03136 的文档数据
 
7、MongoDB中的排序
  使用sort()方法对数据进行排序,sort()方法可以通过参数指定排序的字段,其中 1 为升序排列,而-1是用于降序排列
  db.col.find({},{"title":1,_id:0}).sort({"likes":-1}) #col 集合中的数据按字段 likes 的降序排列
 
8、MongoDB中的索引
  db.col.ensureIndex({"title":1}) #为title字段建立索引,1为升序,2为降序
  db.col.ensureIndex({"title":1,"description":-1}) #使用多个字段创建索引(关系型数据库中称作复合索引)
 
9、MongoDB中的聚合(aggregate)
  主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果。有点类似sql语句中的 count(*)
  db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$sum : 1}}}])  #集合计算每个作者所写的文章数,$sum计算总和,类似于select by_user as _id, count(*) as num_tutorial from mycol group by by_user
posted @ 2019-08-14 09:33  Jervey  阅读(166)  评论(0编辑  收藏  举报