`

mongo常用操作

 
阅读更多

mongo常用操作

shell#查询
查询 name = "bruce" 的数据
db.users.find({ name : "bruce" });

条件操作符
$gt : >
$lt : <
$gte: >=
$lte: <=
$ne : !=、<>
$in : in
$nin: not in
$all: all
$not: 反匹配(1.3.3及以上版本)

查询 name <> "bruce" and age >= 18 的数据
db.users.find({name: {$ne: "bruce"}, age: {$gte: 18}});

查询 creation_date > '2010-01-01' and creation_date <= '2010-12-31' 的数据
db.users.find({creation_date:{$gt:new Date(2010,0,1), $lte:new Date(2010,11,31)});

查询 age in (20,22,24,26) 的数据
db.users.find({age: {$in: [20,22,24,26]}});

查询 age取模10等于0 的数据
db.users.find('this.age % 10 == 0');
或者
db.users.find({age : {$mod : [10, 0]}});

匹配所有
db.users.find({favorite_number : {$all : [6, 8]}});
可以查询出{name: 'David', age: 26, favorite_number: [ 6, 8, 9 ] }
可以不查询出{name: 'David', age: 26, favorite_number: [ 6, 7, 9 ] }

查询不匹配name=B*带头的记录
db.users.find({name: {$not: /^B.*/}});
查询 age取模10不等于0 的数据
db.users.find({age : {$not: {$mod : [10, 0]}}});

#返回部分字段
选择返回age和_id字段(_id字段总是会被返回)
db.users.find({}, {age:1});
db.users.find({}, {age:3});
db.users.find({}, {age:true});
db.users.find({ name : "bruce" }, {age:1});
0为false, 非0为true

选择返回age、address和_id字段
db.users.find({ name : "bruce" }, {age:1, address:1});

排除返回age、address和_id字段
db.users.find({}, {age:0, address:false});
db.users.find({ name : "bruce" }, {age:0, address:false});

数组元素个数判断
对于{name: 'David', age: 26, favorite_number: [ 6, 7, 9 ] }记录
匹配db.users.find({favorite_number: {$size: 3}});
不匹配db.users.find({favorite_number: {$size: 2}});

$exists判断字段是否存在
查询所有存在name字段的记录
db.users.find({name: {$exists: true}});
查询所有不存在phone字段的记录
db.users.find({phone: {$exists: false}});

$type判断字段类型
查询所有name字段是字符类型的
db.users.find({name: {$type: 2}});
查询所有age字段是整型的
db.users.find({age: {$type: 16}});

对于字符字段,可以使用正则表达式
查询以字母b或者B带头的所有记录
db.users.find({name: /^b.*/i});

$elemMatch(1.3.1及以上版本)
为数组的字段中匹配其中某个元素

Javascript查询和$where查询
查询 age > 18 的记录,以下查询都一样
db.users.find({age: {$gt: 18}});
db.users.find({$where: "this.age > 18"});
db.users.find("this.age > 18");
f = function() {return this.age > 18} db.users.find(f);

排序sort()
以年龄升序asc
db.users.find().sort({age: 1});
以年龄降序desc
db.users.find().sort({age: -1});

限制返回记录数量limit()
返回5条记录
db.users.find().limit(5);
返回3条记录并打印信息
db.users.find().limit(3).forEach(function(user) {print('my age is ' + user.age)});
结果
my age is 18
my age is 19
my age is 20

限制返回记录的开始点skip()
从第3条记录开始,返回5条记录(limit 3, 5)
db.users.find().skip(3).limit(5);

查询记录条数count()
db.users.find().count();
db.users.find({age:18}).count();
以下返回的不是5,而是user表中所有的记录数量
db.users.find().skip(10).limit(5).count();
如果要返回限制之后的记录数量,要使用count(true)或者count(非0)
db.users.find().skip(10).limit(5).count(true);

分组group()
假设test表只有以下一条数据
{ domain: "www.mongodb.org"
, invoked_at: {d:"2009-11-03", t:"17:14:05"}
, response_time: 0.05
, http_action: "GET /display/DOCS/Aggregation"
}
使用group统计test表11月份的数据count:count(*)、total_time:sum(response_time)、 avg_time:total_time/count;
db.test.group(
   { cond: {"invoked_at.d": {$gt: "2009-11", $lt: "2009-12"}}
   , key: {http_action: true}
   , initial: {count: 0, total_time:0}
   , reduce: function(doc, out){ out.count++; out.total_time+=doc.response_time }
   , finalize: function(out){ out.avg_time = out.total_time / out.count }
   } );

[
  {
    "http_action" : "GET /display/DOCS/Aggregation",
    "count" : 1,
    "total_time" : 0.05,
    "avg_time" : 0.05
  }
]

分享到:
评论

相关推荐

    linux、mongo 命令

    自己整理的常用linux命令 已经mongo的几个常用命令 方便大家使用

    haigeek#mynotes#mongo常用增删改查1

    常用操作对照db.users.find() select * from usersdb.users.find({}, {"username" : 1, "ema

    MongoDB常用的查询更新等操作汇总

    在本文中,我们将深入探讨一些MongoDB常用的操作,包括查询、更新和其他高级特性。 1. **查询操作**: - `find` 方法用于执行查询。例如,`db.collection_name.find()` 返回集合中的所有文档。 - 要指定返回的...

    php_mongo.dll 5.4,5.5插件各个版本下载

    在PHP开发中,MongoDB是一个常用的NoSQL数据库系统,它以高效、灵活的数据存储和查询能力受到许多开发者的青睐。为了在PHP环境中与MongoDB进行交互,我们需要一个名为`php_mongo.dll`的扩展插件。这个插件是PHP与...

    php5.3-php5.4mongo扩展

    在使用Mongo扩展时,你可以利用`Mongo`类连接到MongoDB服务器,创建`MongoClient`对象,进而进行数据库的读写操作。例如: ```php $mongo = new MongoClient("mongodb://localhost"); $db = $mongo-&gt;selectDB('mydb...

    springboot整合mongodb用MongoTemplate.rar

    其中,`MongoTemplate`是Spring Data MongoDB的核心组件,它提供了一种模板方法模式,用于执行各种MongoDB操作。 首先,我们需要在`pom.xml`文件中添加Spring Boot MongoDB的依赖: ```xml &lt;groupId&gt;org.spring...

    MongoDB的mongo shell常用操作方法及操作脚本笔记

    以下是一些Mongo Shell的常用操作方法和脚本笔记: **一、常用命令** 1. **查看命令提示**:使用`help`、`db.help()`、`db.yourColl.help()`和`db.youColl.find().help()`可以获取关于不同层面的命令帮助,如全局...

    使用docker部署influxdb与 mongo的常用命令

    主要介绍了使用docker部署influxdb与 mongo的常用命令,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

    mongo-explorer.rar

    Service层通常会封装对MongoDB的操作,如使用MongoTemplate或ReactiveMongoTemplate来执行查询、插入、更新等操作。 为了保证数据的安全性,项目可能还涉及了身份验证和授权机制,例如使用Spring Security进行用户...

    Mongo DB数据库命令集合.rar

    这份"Mongo DB数据库命令集合.rar"压缩包文件包含了MongoDB数据库日常操作的基础命令,对于初学者来说是一份非常实用的学习资料。接下来,我们将详细讨论MongoDB的一些核心概念和常用命令。 首先,了解MongoDB的...

    MongoVUe客户端可视化工具

    MongoVUE是一款针对MongoDB数据库的强大且用户友好的可视化客户端工具,它提供了直观的界面,使得数据库管理和数据操作变得更为简单。MongoDB是一款流行的开源、文档型数据库系统,以其灵活性、可扩展性和高性能而受...

    php5.4常用dll文件php_redis、php_memcache、php_mongo

    在标题和描述中提到的"php5.4常用dll文件php_redis、php_memcache、php_mongo"是指PHP 5.4版本中常用的三个动态链接库(DLL)扩展,它们分别对应于Redis、Memcache和MongoDB这三种不同的数据存储解决方案。...

    mongo查询语法.docx

    本文将深入解析MongoDB的常用查询命令,涵盖数据范围查询、取模运算、匹配查询、嵌入对象查询等多个方面。 1. 数据范围查询: MongoDB提供了`$gt`(大于)、`$lt`(小于)、`$gte`(大于或等于)和`$lte`(小于或...

    mongo php类

    "mongo php类"指的是PHP中用于操作MongoDB的类库,允许开发者在PHP应用程序中执行CRUD(创建、读取、更新、删除)操作。 MongoDB类和TmongoDB类是两种不同的PHP类,用于连接和管理MongoDB数据库。MongoDB类是PHP...

    mongo db visual studio2010 实现插入删除操作 源代码

    Visual Studio 2010 是微软提供的一个强大的集成开发环境(IDE),支持多种编程语言,包括C#,它是实现MongoDB操作的常用工具。 本示例源代码提供了在Visual Studio 2010中使用C#与MongoDB进行交互的基本方法,涵盖...

    Laravel开发-laravel-passport-mongo

    通过Composer来安装是最常用的方式: ```bash composer create-project --prefer-dist laravel/laravel your_project_name ``` 接下来,我们安装Passport组件: ```bash composer require laravel/passport ``` ...

    linux常用命令手册.pdf

    通过以上对Linux常用命令的详细介绍,我们可以看到这些命令涵盖了从系统管理到日常操作的各个方面,是每位Linux用户和管理员必备的知识。掌握这些命令可以帮助我们更高效地管理和使用Linux系统。

    数据库基础,mysql mongo redis

    在现代Web开发中,MySQL、MongoDB和Redis扮演着不同的角色,而Python作为常用的数据处理和编程语言,与这些数据库有着紧密的结合。 MySQL是一款关系型数据库管理系统(RDBMS),基于SQL标准,广泛应用于各种规模的...

    mongodb使用心得简单总结

    1.mongodb特性 1)mongo是一个面向文档的数据库,它集合了nosql和sql数据库两方面的特性。 2)所有实体都是在首次使用时创建。 3)没有严格的事务特性...2.mongo常用操作 1.增删操作 db.user.insert({name:’aaaa’,a

Global site tag (gtag.js) - Google Analytics