mongodb高级查询

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});

时间: 2025-01-02 22:02:46

mongodb高级查询的相关文章

mongoDB 高级查询语法

http://www.cnblogs.com/ITAres/articles/2084794.html本文参考自官方的手册:http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-ConditionalOperators%3A%3C%2C%3C%3D%2C%3E%2C%3E%3D 1 ) . 大于,小于,大于或等于,小于或等于 $gt:大于 $lt:小于 $gte:大于或等于 $lte:小于或等于 例子: db.c

MongoDB高级查询用法

译 MongoDB高级查询用法 2018年09月04日 18:52:43 小小小辉happy 阅读数 752更多 分类专栏: 数据库 db的帮助文档 输入:db.help(); db.AddUser(username,password[, readOnly=false])  添加用户 db.auth(usrename,password)     设置数据库连接验证 db.cloneDataBase(fromhost)     从目标服务器克隆一个数据库 db.commandHelp(name)

MongoDB高级查询详细

前言 前几篇,老玩家绕道即可,新手晚上闲着也是蛋疼,不如把命令敲一边,这样你就会对MongoDB有一定的掌握啦.如果没有安装MongoDB去看我的上一篇博客  MongoDB下载安装与简单增删改查 前奏:启动mongdb数据库服务,并进入shell界面 > cmd > cd C:\Program Files\MongoDB\bin  --进入mongdb安装文件的bin目录下. > net start mongoDB;  --开启mongoDB数据库服务 > mongo   --进

第二部分 应用篇 第五章 MongoDB高级查询

声明:该文章主要来自<MongoDB实战>一书内容,主要想通过该书学习MongoDB的相应知识,加深理解,故写在自己的博文当中,作为记录,在最后的章节中,会有一个自己集合MongoDB数据库应用的JavaEE的web应用. 本章将结合实际应用,重点阐述一些实际工作中最常用的方法. 面向文档的NoSQL数据库主要解决的问题不是高性能的并发读写,而是保证海量数据存储的同时,具有良好的查询性能. MongoDB最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似

mongoDB高级查询与索引

整理来自 https://www.shiyanlou.com/courses/running/78 覆盖索引查询 所有的查询字段都是索引的一部分:所有的查询返回字段在同一个索引中. 由于索引存在于RAM中,因而从索引中获取数据要比扫面文档更快 范例:创建如下users集合(使用前面所学的方法创建该集合): { "contact": "987654321", "dob": "01-01-1991", "gender&q

mongodb 高级查询详解

MongoDB:管道操作 使用聚合框架可以对集合中的文档进行变换和组合.基本上,可以用多个构件创建一个管道(pipeline),用于对一连串的文档进行处理.这些构件包括筛选(filter).投射(projecting).分组(grouping).排序(sorting).限制(limiting)和跳过(skipping). 例如,有一个保存书籍信息的集合,你想知道投票数量最多的书籍.可以按照如下步骤创建管道: 将每个书籍信息中的书名和投票投射出来{"$project":{"ti

mongoDB 高级查询之取模查询$mod

http://hancang2000.i.sohu.com/blog/view/235140698.htm $mod取模运算 查询age取模10等于0的数据 db.student.find( { age: { $mod : [ 10 , 1 ] } } ) 举例如下: C1表的数据如下: > db.c1.find() { "_id" : ObjectId("4fb4af85afa87dc1bed94330"), "age" : 7, &qu

MongoDB的使用学习之(六)MongoDB的高级查询之条件操作符

此文分为两点,主要是在第二点--java 语法,但是按顺序必须先把原生态的语法写出来 (还有一篇文章也是不错的:MongoDB高级查询用法大全(包含MongoDB命令语法和Java语法,其实就是我整理这篇文章的理想模式,阿哈):http://www.cnblogs.com/t2xingzhe/p/3555268.html) 一.javascript语法(原生态语法) 此部分转载自http://blog.csdn.net/u013339851/article/details/23600299 1.

PHP操作Mongodb之高级查询篇

本文主要讲解PHP中Mongodb的除了增删改查的一些其他操作. 在PHP操作Mongodb之增删改查篇中我们介绍了PHP中Mongodb的增加.删除.修改及查询数据的操作.本文主要是将查询时用到的高级知识跟大家分享下. 1.查询时的排序 在关系型数据库的查询中,往往会用到排序.例如时间倒序,点击率升序啦等等.在Mongodb的查询中,也有排序功能的. 语法格式: $db->find()->sort(array('age' => 1));    //按age字段升序排序.1为升序,-1为