【Mongodb教程 第十八课 】MongoDB常用命令 数据库命令 集合操作命令

面向文档的 NoSQL 数据库主要解决的问题不是高性能的并发读写,而是保证海量数据存储的同时,具有良好的查询性能。

条件操作符

<, <=, >, >=  这个操作符就不用多解释了,最常用也是最简单的

db.collection.find({ "field" : { $gt: value } } );    //  大于:    field > 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 匹配所有

这个操作符跟SQL语法的in类似,但不同的是, in只需满足( )内的某一个值即可,  而$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}});

Null 值处理 

> db.c2.find({age:null})

$mod 取模运算 

查询age取模6等于1的数据

db.c1.find({age: {$mod : [ 6 , 1 ] } })

$ne 不等于

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

db.c1.find( { age : { $ne : 7 } } );

$in 包含 

db.c1.find({age:{$in: [7,8]}});

$nin 不包含

查询age的值在7,8 范围外的数据

db.c1.find({age:{$nin: [7,8]}});

$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 不以T开头的数据

db.c1.find({name: {$not: /^T.*/}});

Javascript 查询和$Where查询

查询a大于3的数据,下面的查询方法殊途同归

db.c1.find( { a : { $gt: 3 } } );

db.c1.find( { $where: "this.a > 3" } );

db.c1.find("this.a > 3");

f = function() { return this.a > 3; } db.c1.find(f);

count 查询记录条数 

db.users.find().count();

以下返回的不是5,而是user 表中所有的记录数量

db.users.find().skip(10).limit(5).count();

如果要返回限制之后的记录数量,要使用count(true)或者count(非0)

db.users.find().skip(10).limit(5).count(true);

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

游标

for( var c = db.t3.find(); c.hasNext(); ) {

printjson( c.next());

}

MongoDB 还有另一种方式来处理游标

> db.t3.find().forEach( function(u) { printjson(u); } );

存储过程 

关于存储过程你需要知道的第一件事就是它是用 javascript来写的。

MongoDB 存储过程是存储在db.system.js表中的,我们想象一个简单的sql自定义函数如下:

function addNumbers( x , y ) {

return x + y;

}

下面我们将这个sql自定义函数转换为MongoDB 的存储过程:

> db.system.js.save({_id:"addNumbers", value:function(x, y){ return x + y; }});

存储过程可以被查看,修改和删除,所以我们用 find 来查看一下是否这个存储过程已经被创建上了。

> db.system.js.find()

调用一下这个存储过程:

db.eval(‘addNumbers(3, 4.2)‘);

db.eval()是一个比较奇怪的东西,我们可以将存储过程的逻辑直接在里面并同时调用,而无需事先声明存储过程的逻辑。

db.eval( function() { return 3+3; } );

时间: 2024-07-28 14:53:06

【Mongodb教程 第十八课 】MongoDB常用命令 数据库命令 集合操作命令的相关文章

【Mongodb教程 第十七课 】MongoDB常用命令 数据库命令 集合操作命令

(1)数据库命令 a)添加用户 db.addUser(‘name’,’pwd’) b)删除用户 db.removeUser(‘name’) c)用户验证 db.auth(‘name’,’pwd’) d)拷贝数据库,从test库拷贝  db.copyDatabase(‘test’,’mydb’) e)删掉数据库 db.dropDatabase() f)获取数据库下所有集合 db.getCollectionNames() g)停止mongo服务 db.shutdownServer() h)使用某个数

JAVA学习第三十八课(常用对象API)- 集合框架(六)— Map集合及其常用方法

一.Map集合特点 Map集合(双列集合)一次添加一对元素,Collection集合(单列集合)一次添加一个元素 接口 Map<K,V>,实际上存储的是键值对 特点: 将键映射到值的对象.一个映射不能包含重复的键:每个键最多只能映射到一个值. 也就是说Map中必须保证键的唯一性 二.常用方法 1.添加:value = put(key,value);返回前一个和key相关联的值,如果没有返回null 2.删除:void clear();把Map中的所有映射关系清除 value remove(ke

NeHe OpenGL教程 第二十八课:贝塞尔曲面

转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线教程的编写,以及yarn的翻译整理表示感谢. NeHe OpenGL第二十八课:贝塞尔曲面 贝塞尔曲面: 这是一课关于数学运算的,没有别的内容了.来,有信心就看看它吧. 贝塞尔曲面 作者: David Nikdel ( [email protected] ) 这篇教程旨在介绍贝塞尔曲面,希望有比我更

NeHe OpenGL教程 第十八课:二次几何体

转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线教程的编写,以及yarn的翻译整理表示感谢. NeHe OpenGL第十八课:二次几何体 二次几何体: 利用二次几何体,你可以很容易的创建球,圆盘,圆柱和圆锥. 二次曲面是一种画复合对象的方法,这种方法通常并不需要很多的三角形.我们将要使用第七课的代码.我们将要增加7个变量以及修改纹理以增加一些变化

【Mongodb教程 第十六课 】 分享NO-SQL开发实战

最近研究了一下NOSQL,现整理目录如下: 一.关系数据库的瓶颈: 二.NOSQL概述: 三.NOSQL中的热门数据库MongoDB介绍及安装配置: 四.MongoDB开发模式及实战: 一.关系数据库的瓶颈 从90年代到至今,关系数据库扮演了最重要的角色,它的性能,可扩展性.稳定性.数据的备份和恢复机制等都非常好,关系数据库发展到现在已经非常成熟,它提供给使用者的是一整套体系,包括数据存储.数据备份恢复.数据加解密.应用开发驱动.图形化配置维护工具.安全策略等等.图1中展示了世界上各种数据库的使

【Mongodb教程 第十四课 】MongoDB 投影

mongodb 投影意思是只选择必要的数据而不是选择一个文件的数据的整个.如果一个文档有5个字段,需要显示只有3个,然后选择其中只有3个字段. find() 方法 MongoDB 的find()方法,在 MongoDB查询 文档解释接受第二个可选参数是要检索的字段列表.在MongoDB中,当执行find()方法,那么它会显示一个文档所有字段.要限制这一点,需要设置的字段列表值1或0. 1用来显示字段而0是用来隐藏字段. 语法: find()方法具有投影基本语法如下 >db.COLLECTION_

【Mongodb教程 第十五课 】MongoDB 限制记录

Limit() 方法 要限制 MongoDB 中的记录,需要使用 limit() 方法. limit() 方法接受一个数字型的参数,这是要显示的文档数. 语法: limit() 方法的基本语法如下 >db.COLLECTION_NAME.find().limit(NUMBER) 示例 考虑集合myycol具有以下的数据 { "_id" : ObjectId(5983548781331adf45ec5), "title":"MongoDB Overvi

【Mongodb教程 第十二课 】PHP mongodb 的使用

mongodb 不用过多的介绍了,NOSQL的一种,是一个面向文档的数据库,以其方便灵活的数据结构,对于开发者来说是比较友好的,同时查询的速度也是比较快的,现在好多网站 开始使用mongodb ,具体的介绍可以网上查找. 今天是进行PHP 连接mongodb.主要是进行环境的搭建,只有搭建好开发环境才能更好的进行PHP mongodb 的开发. 不多说了开发准备开发环境的软件: 1.mongodb . 网上百度一下在官网额可以下载到. 我使用的是mongodb-win32-i386-2.4.5

【Mongodb教程 第十九课 】PHP与MONGODB的条件查询

与普通的关系型数据库类似,在对数据的删.改.查的时候,会用到查询条件,如mysql中的 where… 而MongoDB中,经过php来做的所有的操作指令都是用array来包裹的: MongoCollection::update  ( array $criteria , array $newobj  [, array $options = array()  ] )public MongoCursor MongoCollection::find  ([ array $query = array()