星空网 > 软件开发 > 数据库

mongoDB 学习笔记(一)安装,启动,增删改查

一、下载·安装·启动

  学习mongoDB第一步下载安装,度娘有教程不详细解释,说一下重要的点。

  1 解压安装包后创建数据库文件的存放位置,例如:d:/mongodb/data/db;

  2 启动:D:/mongodb/bin>mongod --dbpath D:\mongodb\data\db;

  mongoDB  学习笔记(一)安装,启动,增删改查

    内容:

    dbpath=D:\mongodb\data\db

    logpath=D:\mongodb\log\mongo.log 

    (3)配置:管理员身份  D:\mongodb\bin>mongod --config D:\mongodb\mongo.config。

    (services.msc命令可以查看修改各服务的状态)

二、进入数据库(新启动一个窗口)

  mongo;  进入   exit;  退出

  show dbs;    查看数据库s

  use  xxdb;   使用**数据库

  show collections;   查看集合

三 mongoD设置用户名密码

  MongoDB.aspx' >MongoDB默认设置为无权限访问限制,所以上面可以直接进入,而不需要用户名,密码。

  show dbs;

  use admin; 你可以发现一个system.user表, 这就是用户表,存放超级管理员的。

  db.createUser('ab','ab');

  想要使用用户名密码登录,还需要修改启动方式,重新启动并在原来的基础上增加 -auth

  D:/mongodb/bin>mongod --dbpath D:\mongodb\data\db -auth

  这时已经不能查看集合的内容了。

  db.auth('ab','ab');  使用账号密码登录 成功返回1,失败返回0

  单独访问数据库(直接登录某数据库),需要权限访问的情况,用户名密码并非超级管理员,而是该库system.user表中的用户;

  不单独访问(先进入admin库,再转到其他库,则使用超级管理员足矣)

四 基本语法 增删改查

  database methods:

  db.createUser(username,password);

  db.auth(username,password);

  db.cloneDataBase(fromhost);  从目标服务器可控一个数据库

  db.copyDatabase(fromdb,todb,fromhost)  复制数据库 可以改名字``````这部分用到较少,主要是第二部分。

  collection methods:

  db.collectionName.find({"id":10}).skip(3).limit(3).sort({"age":-1}).count();

  db.collectionName.findOne(...);

  db.collectionName.remove();

  db.collectionName.insert();

  db.collectionName.update();

  db.collectionName.getDB();返回名字

  db.collectionName.getIndexes();索引信息

  db.collectionName.group({key,reduce,initial,[keyf,cond,finalize]})

  key:分组元素;reduce:自定义function方法对组内数据进行处理;initial:初始化结果集;keyf:可以对key进行处理并代替key;cond:先用cond过滤再分组;finalize:function方法对上面的结果再进行处理。

  db.collectionName.renameCollection(newName);..........................

  1)增

  db.collectionName.insert({name:"wangzhanting",age:[15,25,35,45,55]});

  db.collectionName.save({name:"wangzhanting",age:[15,25,35,45,55]});

  两者用法类似,mongodb的save和insert函数都可以向collection里插入数据,但两者是有两个区别:
  1.使用save函数里,如果原来的对象不存在,那他们都可以向collection里插入数据,如果已经存在,save会调用update更新里面的记录,(而insert则会忽略操作,也就是不能插入)。
  2.insert可以一次性插入一个列表,而不用遍历,效率高, save则需要遍历列表,一个个插入。

  2)删

  db.collectionName.remove(DELETION_CRITERIA);删除符合条件的文档

  db.collectionName.remove(DELETION_CRITERIA,1); 只删除第一个符合条件的文档

  db.collectionName.remove(); 删除这个集合

  db.dropDatabase(); 删除这个集合

  3)改

  save方法也有更新的作用。

  db.collectionName.update({'title':'MongoDB Overview'},{$set:{'title':'New MongoDB Tutorial'}},1,1)

  1 需要更新的条件  2 更新的内容的对象  3 如果没有符合条件的记录,是否新增,1 就新增,默认为0    4 如有有多个符合条件的记录,是否全部更新

  使用到了$语法,下面做详细介绍

  4)查

  db.collectionName.find({"id":10},{"age":1}).skip(3).limit(3).sort({"age":-1}).count();

  find后是查询条件,投影(显示哪几个属性),skip指忽略前几条;limit指只查询前几条;sort指按某字段排序;count计数。

  $语法:

  db.collection.find({x:{$gt:10,$lt:30}});

  db.collection.find({x:{$gt:new Date("2012/01/01")}});   $lt 小于 $lte 小于等于 $gt 大于  $gte 大于等于  $ne  不等于

  db.collection.find({x:{$in:[0,1,2]}});

  db.collection.find({x:{$nin:[0,1,2]}});      $in 包含  $nin   不包含

  db.collection.find({$or:[{age:10},{name:"aaa"}]})

  db.collection.find({age:{$all:[1,2,3]}})       $all 匹配所有

  db.collection.find(name:{$exists:false})      查找属性不存在的文档

  db.collection.find(name:null);            可以查到没有name属性或值为null的文档

  db.collection.find(name:{$in:[null]},$exists:true)  可能存在一种情况,name存在但是null,这条语句可以查到

  db.collection.find({age:{$mod:[5,1]}})        取模,除5余1的文档

  db.collection.find({age:{$not:{$mod:[5,1]}}})

  db.collection.find({name:})             正则表达式,这部分稍后

  db.collection.find({num:{$size:2}})          筛选数组大小

  db.collection.find({num:{$slice:x}})          返回数组的一个子集,x为正,则是前x个,x为负,则是后x个;x:[1,1],第一个参数是偏移量(不从第一个开始),第二个是选几个

  $where   使用到了javascript,暂不详解

  db.collection.update({age:10},{$set:{name:""}})      局部更新

  db.collection.update({age:10},{$unset:{name:1}})    局部删除

  db.collection.update({age:10},{$inc:{age:1}})       加1

  db.collection.update({age:10},{$push:{score:10}})    向数组内添加记录

  ·········诸多方法不能穷举,可以参照官网https://docs.mongodb.org/manual/reference/operator/update/push/#up._S_push d




原标题:mongoDB 学习笔记(一)安装,启动,增删改查

关键词:MongoDB

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

fba专业物流:https://www.goluckyvip.com/tag/20333.html
fba转仓:https://www.goluckyvip.com/tag/20334.html
fba转运:https://www.goluckyvip.com/tag/20335.html
fba转运什么意思:https://www.goluckyvip.com/tag/20336.html
fba装箱:https://www.goluckyvip.com/tag/20337.html
fba装箱单:https://www.goluckyvip.com/tag/20338.html
字节跳动辟谣!TikTok收紧美国开店政策为不实信息:https://www.goluckyvip.com/news/188212.html
2024北京庞各庄镇梨花节开幕时间是几号?:https://www.vstour.cn/a/365179.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流