mongodb高级查询
admin
2023-05-29 01:20:04
0

  MongoDB 的逻辑结构是一种层次结构。主要由文档(document)、集合(collection)、数据库(database)这三部分组成的。逻辑结构是面向用户的用户使用MongoDB 开发应用程序使用的就是逻辑结构。

  MongoDB 的文档document相当于关系数据库中的一行记录。

  多个文档组成一个集合collection相当于关系数据库的表。

  多个集合collection逻辑上组织在一起就是数据库database。

  一个MongoDB 实例支持多个数据库database。

mongodb条件查询

   db.collection.find({"field":{$gt:value}}) //大于

   db.collection.find({ "field" : { $lt: value } } ); // 小于: field < value

   db.collection.find({ "field" : { $gte: value } } ); // 大于等于: field >= value

   db.collection.find({ "field" : { $lte: value } } ); // 小于等于: field <= value

   如果要同时满足多个条件可以这样做

    db.collection.find({ "field" : { $gt: value1, $lt: value2 } } ); // value1 < field < value

   

    $all匹配所有 必须满足[ ]内的所有值例如:

    db.users.find({age : {$all : [6, 8]}});

    可以查询出 {name: 'David', age: 26, age: [ 6, 8, 9 ] }

    但查询不出 {name: 'David', age: 26, age: [ 6, 7, 9 ] }


    $exists判断字段是否存在

    查询所有存在age 字段的记录

    db.users.find({age: {$exists: true}});

    查询所有不存在name 字段的记录

    db.users.find({name: {$exists: false}});

    

    $ne不等于

    查询x 的值不等于3 的数据

    db.things.find( { x : { $ne : 3 } } );


    $in包含

    查询x 的值在2,4,6 范围内的数据

    db.things.find({x:{$in: [2,4,6]}});

  

    $nin不包含

   查询x 的值在2,4,6 范围外的数据

    db.things.find({x:{$nin: [2,4,6]}});

 

    $size数组元素个数

    对于{name: 'David', age: 26, favorite_number: [ 6, 7, 9 ] }记录

    匹配db.users.find({favorite_number: {$size: 3}});

    不匹配db.users.find({favorite_number: {$size: 2}});

 

    正则表达式匹配

    查询不匹配name=B*带头的记录

    db.users.find({name: {$not: /^B.*/}});


    skip限制返回记录的起点

    从第3 条记录开始返回5 条记录(limit 3, 5)

    db.users.find().skip(3).limit(5);


    sort排序

    以年龄升序asc

    db.users.find().sort({age: 1});

    以年龄降序desc

    db.users.find().sort({age: -1});


相关内容

热门资讯

伊朗总统:最高领袖决策过程遭人... 新华社德黑兰8月6日电 据伊朗伊斯兰共和国广播电视台5日报道,伊朗总统佩泽希齐扬说,目前与伊朗最高领...
1300亿元人民币,阿根廷:同... 据凤凰卫视报道,阿根廷中央银行8月5日宣布,与中国人民银行延长货币互换协议,规模为1300亿元人民币...
北京化工大学实验室发生安全事故... 8月5日凌晨,北京化工大学发生一起实验室安全事故,一名硕士研究生在实验过程中左手严重受伤。
“婚外胚胎案”原配朱女士回应胚... 近日,“患癌妻子申请销毁丈夫婚外胚胎遭拒案”持续引发关注。就在昨天(8月5日)下午,“患癌妻子朱女士...
马克龙称欧盟及其伙伴将继续加大... 【环球网报道 记者 张江平】据俄罗斯《共青团真理报》报道,对于法国总统马克龙发表关于加大向俄罗斯施压...
韩国外长称将为重启韩朝对话创造... 据凤凰卫视报道,韩国外交部长官赵显8月5日总统工作报告后召开记者会。有关朝鲜问题,他表示,为奠定半岛...
比矿泉水还轻的12英寸平板:华... 【环球网科技报道 记者 张阳】平板电脑市场近年来的发展并不乐观,据国际数据公司(IDC)预测,202...
“一箭双星” 捷龙三号海上发射... 封面新闻记者 边雪 8月5日10时38分,捷龙三号运载火箭在山东海阳附近海域点火升空,随后以“一箭双...
这届AI办公,名字比产品还难用 头图及封面来源 | GPT ChatGPT Work、Claude Cowork、Microsoft...