ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

MongoDB相关语法一

2022-01-11 21:05:31  阅读:182  来源: 互联网

标签:MongoDB db 语法 num numbers citys 相关 find 220


一、set

进行修改文档的指定的属性值

插入文档:

db.users.insert({name:"xiaoli",hobby:{citys:["beijing","shanghai"],flower:["baihe","lanhua"]}})

db.users.update({name:"xiaoli"},{$set:{hobby:{citys:["beijing","hangzhou"]}}})

二、push和addToSet

  • push不会考虑元素重复

    db.users.update({name:"xiaoli"},{$push:{"hobby.citys":"hefei"}})
    
  • addToSet不会向集合中 添加重重复元素

    db.users.update({name:"xiaoli"},{$addToSet:{"hobby.citys":"ningbo"}})
    

三、文档嵌套查询

注意:文档的嵌套的属性,要用引号

db.users.find({"hobby.citys":"hangzhou"})

四、一次插入多条文档,效率比较

  • 循环插入多次

    //1.4s
    for(var i=1;i<=500;i++)
    {
    db.numbers.insert({num:i});
    }
    
  • 插入一次

    //0.3s
    var arr = [];
    for(var i=501;i<=1000;i++)
    {
    arr.push({num:i});
    }
    db.numbers.insert(arr)
    

总结:当需要插入多条数据时,先一次性把数据存放到数组,再一次型性插入,效率较高。

五、等值与不等值

//num>220
db.numbers.find({num:{$gt:220}});
//num>=220
db.numbers.find({num:{$gte:220}});

//num=220
db.numbers.find({num:220});
db.numbers.find({num:{$eq:220}});

//num<220
db.numbers.find({num:{$lt:220}});
//220<=num
db.numbers.find({num:{$lt:220}});

//num>=220 and num<=225
db.numbers.find({num:{$gte:220,$lte:225}});

//10<=num or num>=990
db.numbers.find({$or:[{num:{$lte:10}},{num:{$gte:990}}]});

六、基础上进行累加

查询出num小于等于10或者num大于等于的值,在原有基础上减去1000

db.numbers.updateMany({$or:[{num:{$lte:10}},{num:{$gte:990}}]},{$inc:{num:-1000}})

七、查询对象的属性值

//仅仅查询出一个
db.users.findOne({"hobby.citys":"hangzhou"}).name
//查询返回多个对象,通过取下标值定位第一个,否则报错
db.users.find({"hobby.citys":"hangzhou"})[0].name

八、分页显示

skip()用于跳过指定数量的数据

skip((页码-1)* 每页显示的数据条数).limit(每页显示的条数);skip和limit不分先后,MongoDB会自动调整顺序

db.numbers.find().skip(2).limit(10);

九、排序

//-1:表示降序
db.numbers.find({}).sort({num:-1});
//1:表示升序
db.numbers.find({}).sort({num:1});

skip()、limit()和sort()可以以任何顺序进行调用

十、投影

//默认是显示全部
db.numbers.find({},{});
//指定不显示id
db.numbers.find({},{_id:0});
//制定个显示某列,文档属性名:1
db.numbers.find({},{num:1});

标签:MongoDB,db,语法,num,numbers,citys,相关,find,220
来源: https://www.cnblogs.com/wml-it/p/15790043.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有