当前位置: 首页 > news >正文

公司网站介绍范文/好搜网

公司网站介绍范文,好搜网,深圳建设工程交易服务,ecshop做的小说网站插入: 使用insert或save方法想目标集合插入一个文档: db.person.insert({"name":"ryan","age":30}); 使用batchInsert方法实现批量插入,它与insert方法非常类似,只是它接受的是一个文档数组作为参数…

插入:

    使用insert或save方法想目标集合插入一个文档:

    db.person.insert({"name":"ryan","age":30});

    使用batchInsert方法实现批量插入,它与insert方法非常类似,只是它接受的是一个文档数组作为参数。一次发送数十,数百乃至数千个文档会明显提高插入的速度。

    db.person.batchInsert([{"name":"ryan","age":30},{"name":"pitaya","age":2}]);

    如果在批量插入的过程中有一个文档插入失败,那么在这个文档之前的所有文档都会成功插入到集合中,而这个文档以及之后的所有文档全部插入失败。如果希望batchInsert忽略错误并且继续执行后续插入,可以使用continueOnError选项。shell并不支持这个选项,但所有的驱动程序都支持。 

更新:

    使用update方法来更新集合中的数据。update有四个参数,前两个参数是必须的。

    db.person.update({"name":"ryan"},{"$set":{"age":35}},true,true);

    第一个参数:查询文档,用于定位需要更新的目标文档。

    第二个参数:修改器文档,用于说明要对找到的文档进行哪些修改。

    第三个参数:true表示要使用upsert,即如果没有找到符合更新条件的文档,就会以这个条件和更新文档为基础创建一个新的文档。如果找到了匹配的文档,则正常更新。

    第四个参数:true表示符合条件的所有文档,都要执行更新。

    修改器:

    $set:用来指定一个字段的值。如果这个字段不存在,则创建它。对于更新而言,对符合更新条件的文档,修改执行的字段,不需要全部覆盖。

    db.person.update({"name":"ryan"},{"$set":{"age":35}},true,true);

    $inc:用来增加已有键的值,或者该键不存在就创建一个。对于投票等有变化数值的场景,这个会非常方便。

    db.person.update({"name":"ryan"},{"$inc":{"age":2}},true,true);//对符合name等于ryan的文档,age字段加2。

    $push:向已有数组末尾加入一个元素。

    db.person.update({"name":"ryan"},{"$set":{"language":["chinese"]}},true,true);//对符合name等于ryan的文档,添加一个language的数组

    db.person.update({"name":"ryan"},{"$push":{"language":"english"}},true,true);//给数组的末尾添加一个值。

    $addToSet:避免向数组插入重复的值。

    db.person.update({"name":"ryan"},{"$addToSet":{"language":"english"}},true,true);

    $each:与$push和$addToSet结合,一次给数组添加多个值。

    db.person.update({"name":"ryan"},{"$push":{"language":{"$each":["Japanese","Portuguese"]}}},true,true);

    db.person.update({"name":"ryan"},{"$addToSet":{"language":{"$each":["Japanese","Portuguese"]}}},true,true);

    $pop:可以从数组的任何一端删除元素。

    db.person.update({"name":"ryan"},{"$pop":{"language":1}},true,true);//从数组的末尾删除一个元素

    db.person.update({"name":"ryan"},{"$pop":{"language":-1}},true,true);//从数组的头部删除一个元素

    $pull:删除数组对应的值。全部删除。

    db.person.update({"name":"ryan"},{"$pull":{"language":"english"}},true,true);

删除:

    使用remove方法删除集合中的数据。它可以接受一个查询文档作为可选参数。给定这个参数以后,只有符合条件的文档才能被删除。(删除数据是永久性的,不能撤销,也不能恢复)。

    db.person.remove({"name":"ryan"});//删除person集合中name字段的值等于ryan的所有文档。

    db.person.remove();//删除person集合中所有的文档。

    使用drop方法代替remove方法,可以大幅度提高删除数据的速度。但是这个方法不能指定任何限定条件。而且整个集合都会被删除,包括索引等信息,甚用!!

    db.person.drop();

查询:

    MongoDB中使用find方法来进行查询。查询就是返回一个集合中文档的子集,子集的范围从0个文档到整个集合。find方法接受两个参数。

    第一个参数决定了要返回哪些文档,参数的内容是查询的条件。

    第二个参数来指定想要的键(字段)。第二个参数存在的情况:键的值为1代表要显示,为0代表不显示。“_id”默认显示,其他默认不显示。第二个参数不存在的情况:所有字段默认显示。

    db.person.find({"name":"ryan"},{"name":1});

    

    查询条件:

    $lt$lte$gt$gte这四个,就是全部的比较操作符(没有$eq这个操作符),分别对应<、<=、>、>=。

    db.person.find({"age":{"$lt":10}});

    这里提供一段小脚本,插入10万条数据,做之后的测试用。

1 for(var i=0;i<100000;i++){
2     db.person.insert({"name":"ryan"+i,"age":i});
3 }

    $in$nin,用来查询一个键的多个值。

    db.person.find({"age":{"$in":[1,3]}});//查询age等于1或3的文档。

    db.person.find({"age":{"$nin":[1,3]}});//查询age不等于1或3的文档。

    $or,用来查询多个键的多个值。可以和$in等配合使用。

    db.person.find({"$or":[{"name":"ryan2"},{"age":3}]});//查询name等于ryan2   或者   age等于3的文档。

    $exists,查询的键对应是值是null的,默认会返回null和键不存在的文档。可以通过$exists来判断该键是否存在。

    db.person.find({"age":{"$in":[null],"$exists":true}});//查询age等于null,并且键是存在的文档。

    $where,用它可以在查询中执行任意的javascript,这样就能在查询中做(几乎)任何事情。为了安全起见,应该严格限制或者消除"$where"语句的使用。

    db.person.find({"$where":function(){

        ...;//这里可以是任意的javascript语句。

    }})

    游标:利用游标可以限制结果的数量,略过部分结果,根据任意键按任意顺序的组合对结果进行各种排序,或者是执行其他的一些强大的操作。

1 var cursor = db.person.find();
2 while(cursor.hasNext()){
3     obj = cursor.next();
4     ...;//这里可以做任何事情。  
5 }

    常用的shell:

    limit:只返回前面多少个结果。

    db.person.find().limit(2);//查询符合条件的文档,显示前两个文档。

    skip:跳过多少个结果后显示剩余的。

    db.person.find().skip(2);//查询符合条件的文档,显示跳过2个文档后剩余的所有文档。 

    sort:用于排序。接受一个对象(一组键值对)作为参数,键对应文档的键名,值代表排序的方向。排序的方向可以是1(升序)或者-1(降序)。如果指定了多个键,则按照这些键被指定的顺序逐个排序。

    db.person.find().sort({"name":1,"age":-1});//查询的结果,按照name升序,age降序来排序显示。

 

 

  喜欢请微信扫描下面二维码,关注我公众号--“精修Java”,做一些实战项目中的问题和解决方案分享。 

 

转载于:https://www.cnblogs.com/zhouqinxiong/p/5549807.html

http://www.lbrq.cn/news/757675.html

相关文章:

  • 福鼎网站开发/网站建设报价
  • 做纯静态网站怎么样/立即优化在哪里
  • 济南好的seo/长沙建站优化
  • 宁波网站建设的企业/杭州seo网站排名
  • 湛江专业的免费建站/自媒体有哪些平台
  • 免费asp主机网站/综合权重查询
  • 梦幻西游源码论坛/软文优化
  • 南昌做小程序公司/seo优化资源
  • b2c网站怎么建设/马鞍山网站seo
  • 网站源码程序修改/互联网营销模式
  • 网站怎么做效果好/seo优化网络推广
  • 阜宁做网站需要多少钱/临沂百度代理公司有几个
  • 网站营销特点/百度正版下载并安装
  • 重庆网站空间费用/网络营销的优势是什么
  • 怎么做网站规划/视频号链接怎么获取
  • 宝安网站开发/郑州seo多少钱
  • 桥头网站仿做/上海建站seo
  • 网站建设还好做吗/中国外贸订单网
  • 2k屏幕的网站怎么做/百度指数指的是什么
  • 网站 默认页/宁波seo咨询
  • 南通优普网站建设团队/点击器 百度网盘
  • 通州区网站制作/海南百度推广总代理商
  • 网站建设 6万/如何注册域名
  • 上外国网站用什么dns/百度推广代理怎么加盟
  • 有什么做服装的网站好/长春网站建设设计
  • 医药b2b平台排名/广东网站seo策划
  • 网站开发达成口头协议算不算诈骗/临汾网络推广
  • 中企动力建站怎么样/网络营销专业学什么
  • wordpress翻书/谷歌seo 优化
  • 网站排行怎么做/免费网站推广群发软件
  • 浏览器面试题及详细答案 88道(45-55)
  • 德州扑克游戏术语
  • STM32F103C8T6学习——直接存储器访问(DMA)标准库实战3(ADC数据采集+DMA回传)
  • 零基础-动手学深度学习-10.3. 注意力评分函数
  • vue3,使用v-draggable拖动时卡顿的问题
  • centos部署chrome和chromedriver