MongoDB

高效mongodb的php分页类(不使用skip)

mongodb分页skip+limit分页要先查出所有结果再去跳过,这样如果查询页面越往后效率越低。 如果能够通过查询条件查出每页结果的最后一条记录,在用最后一条记录作为查询条件去查下一页,这样每次都查询页面size条记录,效率不会差。 具体代码如下:包含mongodb.class.php, page.class.php, test.php mongodb.class.php mongodb 操作类复制代码 代码如下:<?php function show_error($message, $s [详细]

MongoDB中的bson介绍和使用实例

一、什么是bson BSON是一种类json的一种二进制形式的存储格式,简称Binary JSON,它和JSON一样,支持内嵌的文档对象和数组对象,但是BSON有JSON没有的一些数据类型,如Date和BinData类型。 BSON可以做为网络数据交换的一种存储形式,这个有点类似于Google的Protocol Buffer,但是BSON是一种schema-less的存储形式,它的优点是灵活性高,但它的缺点是空间利用率不是很理想,BSON有三个特点:轻量性、可遍历性、高效性, {“hello" [详细]

MongoDB安全配置详解

0x00 MongoDB权限介绍 1.MongoDB安装时不添加任何参数,默认是没有权限验证的,登录的用户可以对数据库任意操作而且可以远程访问数据库,需以--auth参数启动。 2.在刚安装完毕的时候MongoDB都默认有一个admin数据库,此时admin数据库是空的,没有记录权限相关的信息。当admin.system.users一个用户都没有时,即使mongod启动时添加了--auth参数,如果没有在admin数据库中添加用户,此时不进行任何认证还是可以做任何操作(不管是否是以--auth [详细]

php实现的mongodb操作类

mongo_db.php<php/*** Created by PhpStorm.* User: yangyulong* Date: 2015/5/26* Time: 13:45*/ class Mongo_db {private static $instanceof = NULL;public $mongo;private $host = 'localhost';private $port = '27017';private $db;public $dbname;private $table [详细]

php实现的mongodb操作类实例

本文实例讲述了php实现的mongodb操作类。分享给大家供大家参考。具体如下:<php /** To change this template, choose Tools | Templates* and open the template in the editor.*/ class mongo_db { private $config; private $connection; private $db; private $connection_string; private $hos [详细]

PHP中MongoDB数据库的连接、添加、修改、查询、删除等操作实例

PHP 扩展mongon.mod.dll下载http://cn.php.net/manual/en/mongo.installation.php#mongo.installation.windows 然后php.ini添加 extension=php_mongo.dll 最后phpinfo() 查找到表标PHP已经自带了mongo功能,你就可以操作下面的代码(但是你必须有安装mongodb服务器) 一、连接数据库 使用下面的代码创建一个数据库链接 复制代码 代码如下:<php $connect [详细]

PHP中的mongodb group操作实例

紧接着上篇来,这篇主要讲,mongodb的group功能,做的还是挺强大的,相当对于find(),skip(),distinct()等,用法比较复杂。 测试数据: 复制代码 代码如下: > db.fruit.find(); { "_id" : 1, "category" : "fruit", "name" : "apple" } { "_id" : 2, "category" : "fruit", "name" : "peach" } { "_id" : 3, "category" [详细]

MongoDB与MySQL常用操作语句对照

一、MongoDB对MySQL常用的SQL语句对应的实现 复制代码 代码如下: —————————————— MySQL: SELECT * FROM user Mongo: db.user.find() —————————————— MySQl: SELECT * FROM user WHERE name = 'foobar' Mongo: db.user.find({ 'name' : 'foobar' }) —————————————— MySql: INSER [详细]

MongoDB与MySQL的操作对比表及区别介绍

MySQL与MongoDB都是开源的常用数据库,但是MySQL是传统的关系型数据库,MongoDB则是非关系型数据库,也叫文档型数据库,是一种NoSQL的数据库。它们各有各的优点,关键是看用在什么地方。所以我们所熟知的那些SQL(全称Structured Query Language)语句就不适用于MongoDB了,因为SQL语句是关系型数据库的标准语言。 以我们公司项目为例,在早期的项目中,都在使用关系型数据库,用过SQLServer,Oracle,DB2,后来全部转向Mysql,原因很 [详细]

mongodb中使用distinct去重的简单方法

MongoDB的destinct命令是获取特定字段中不同值列表。该命令适用于普通字段,数组字段和数组内嵌文档. mongodb的distinct的语句: 复制代码 代码如下: db.users.distinct('last_name')等同于 SQL 语句: 复制代码 代码如下: select DISTINCT last_name from users表示的是根据指定的字段返回不同的记录集。 一个简单的实例:// > db.addresses.insert({"zip-code": 1001 [详细]

浅析mongodb中group分组

group做的聚合有些复杂。先选定分组所依据的键,此后MongoDB就会将集合依据选定键值的不同分成若干组。然后可以通过聚合每一组内的文档,产生一个结果文档。 和数据库一样group常常用于统计。MongoDB的group还有很多限制,如:返回结果集不能超过16M, group操作不会处理超过10000个唯一键,好像还不能利用索引[不很确定]。 Group大约需要一下几个参数。 1.key:用来分组文档的字段。和keyf两者必须有一个 2.keyf:可以接受一个javascript函数。用 [详细]

浅谈mongodb中query查询

Mongodb最大的功能之一就是它支持动态查询,就跟传统的关系型数据库查询一样,但是它的查询来的更灵活。 一、 Query Expression Objects:查询表达式对象 查询表达式文档也是一个BSON结构的文档,例如,我们可以用下面的查询语句来查询集合中的所有记录: db.users.find({}) 这里,表达式对象是一个空文档,在查询的时候去去匹配所有的记录。再看: 复制代码 代码如下: db.users.find({'last_name': 'Smith'})这里,我们将会查询 [详细]

mongodb eval 执行服务器端脚本

在服务器端可以通过db.eval函数来执行javascript脚本,也可以把javascript脚本保存在数据库中,然后在别的数据库命令中调用.一、db.eval 执行服务器端脚本 利用db.eval函数可以在MongoDB服务器端执行javascript脚本.这个函数先将给定的javascript字符串传递给MongoDB服务器,在服务器上执行,然后返回结果. db.eval可以用来模拟多文档事务:db.eval锁住数据库,然后执行javascript,再解锁.虽然没有内置的回滚机制,但这能 [详细]

MongoDB中连接字符串的编写

MongoDB数据库与传统的关系型数据库相比,它具有操作简单、完全免费、源码公开等特点,这使MongoDB产品广泛应用于各种大型门户网站和专业网站。由于MongoDB连接并不支持HTTP协议,所有你不能直接通过浏览器访问MongoDB,下面详细介绍MongoDB中连接字符串的编写 一、MongoDB连接字符串常用格式 复制代码 代码如下: mongodb://[username:password@]host1[:port1][,host2[:port2],…[,hostN[:portN]]][ [详细]

MongoDB常用操作命令大全

如:如果你想创建一个“myTest”的数据库,先运行use myTest命令,之后就做一些操作(如:db.createCollection('user')),这样就可以创建一个名叫“myTest”的数据库。一、数据库常用命令1、Help查看命令提示复制代码 代码如下:helpdb.help();db.yourColl.help();db.youColl.find().help();rs.help();2、切换/创建数据库复制代码 代码如下:use yourDB; 当创建一个集合(table)的 [详细]