MongoCursor Object
游标类
Mongo
Config.php配置文件
Table.php(mongodb操作数据库类文件)
Config.php配置文件
复制代码 代码如下:
<?php
require_once 'Zend/Exception.php';
class Hrs_Mongo_Config
{
const VERSION = '1.7.0';
const DEFAULT_HOST = 'localhost';
const DEFAULT_PORT = 27017;
private static $host = self::DEFAULT_HOST ;
private static $port = self::DEFAULT_PORT ;
private static $options = array(
'connect' => true,
'timeout' => 30,
//'replicaSet' => '' //If this is given, the master will be determined by using the ismaster database command on the seeds
);
public static $conn = '';
public static $defaultDb = '';
public static $linkStatus = '';
public static function set($server = 'mongodb://localhost:27017', $options = array('connect' => true)) {
if(!$server){
$url = 'mongodb://'.self::$host.':'.self::$port;
}
if(is_array($server)){
if(isset($server['host'])){
self::$host = $server['host'];
}
if(isset($server['port'])){
self::$port = $server['port'];
}
if(isset($server['user']) && isset($server['pass'])){
$url = 'mongodb://'.$server['user'].':'.$server['pass'].'@'.self::$host.':'.self::$port;
}else{
$url = 'mongodb://'.self::$host.':'.self::$port;
}
}
if(is_array($options)){
foreach (self::$options as $o_k=>$o_v){
if(isset($options[$o_k]))
self::$options[$o_k] = $o_v;
}
}
try{
self::$conn = new Mongo($url, self::$options);
self::$linkStatus = 'success';
}catch (Exception $e){
self::$linkStatus = 'failed';
}
if(isset($server['database'])){
self::selectDB($server['database']);
}
}
public static function selectDB($database){
if($database){
try {
if(self::$linkStatus=='success')
self::$defaultDb = self::$conn->selectDB($database);
return self::$defaultDb;
}
catch(InvalidArgumentException $e) {
throw new Zend_Exception('Mongodb数据库名称不正确');
}
}else{
throw new Zend_Exception('Mongodb数据库名称不能为空');
}
}
}
Table.php(mongodb操作数据库类文件)
复制代码 代码如下:
<?php
require_once 'Hrs/Mongo/Config.php';
abstract class Hrs_Mongo_Table
{
protected $_db = '';
protected $_name = '';
protected $_data = array();
protected $c_options = array(
'fsync'=>true,
'safe'=>true
);
protected $u_options = array(
//'upsert'=>false,
'multiple'=>true,
'fsync'=>true,
'safe'=>true
);
/*
protected $r_options = array(
);*/
protected $d_options = array(
'fsync'=>true,
'justOne'=>false,
'safe'=>true
);
protected function _setAdapter($database=''){
if(!$database)
throw new Zend_Exception('Mongodb数据库名称不能为空');
Hrs_Mongo_Config::selectDB($database);
}
public function __construct() {
if(Hrs_Mongo_Config::$conn instanceof Mongo){
$name = $this->_name;
$defDb = Hrs_Mongo_Config::$defaultDb;
$this->_db = $defDb->$name;
}else{
throw new Zend_Exception('Mongodb服务器连接失败');
}
}
public function insert($data){
if(!$this->testLink()) return false;
$ret = $this->_db->insert($data, $this->c_options);
return $ret;
}
public function update($data, $where){
if(!$this->testLink()) return false;
return $this->_db->update($where, $data, $this->u_options);
}
public function find($where=array(),$limit=0){
if($this->testLink()) {
if($limit>0){
$this->_data = $where ? $this->_db->find($where)->limit($limit)->snapshot() : $this->_db->find()->limit($limit)->snapshot();
}else{
$this->_data = $where ? $this->_db->find($where)->limit($limit)->snapshot() : $this->_db->find()->limit($limit)->snapshot();
}
}
return $this;
}
//find cursor
/*
* 获取游标对象
*/
public function look($where=array(),$fields=array()){
if($this->testLink()) {
if($fields){
return $where ? $this->_db->find($where,$fields): $this->_db->find()->fields($fields);
}else{
return $where ? $this->_db->find($where) : $this->_db->find();
}
}
return false;
}
public function delete($where){
if(!$this->testLink()) return false;
return $this->_db->remove($where, $this->d_options);
}
public function dropMe(){
if(!$this->testLink()) return false;
return $this->_db->drop();
}
public function __toString(){
return $this->_data;
}
public function toArray(){
$tmpData = array();
foreach($this->_data as $id=>$row){
$one_row = array();
foreach($row as $key=>$col){
$one_row[$key] = $col;
}
$one_row['_id'] = $id;
$tmpData[] = $one_row;
}
return $tmpData;
}
protected function testLink(){
return Hrs_Mongo_Config::$linkStatus == 'success' ? true :false;
}
}
要点注意!!!
第一种方法
复制代码 代码如下:
//find cursor
/*
* 获取游标对象
*/
public function look($where=array(),$fields=array()){
if($this->testLink()) {
if($fields){
return $where ? $this->_db->find($where,$fields): $this->_db->find()->fields($fields);
}else{
return $where ? $this->_db->find($where) : $this->_db->find();
}
}
return false;
}
第二种方法
复制代码 代码如下:
public function find($where=array(),$field=array()){
if($this->testLink()) {
$this->_data = $this->_db->find($where,$field)->sort(array("_id" => -1));
}
return $this;
}
复制代码 代码如下:
/*
* 获取游标对象
*/
public function getCursor(){
return $this->_data;
}
第二种需要的是find得到的不是数组
find($where)->getCursor();是MongoCursor Object
注意注意
find()返回的是当前对象
toArray()方法是把当前对象转换为数组
getCursor()方法是把当前对象转换为MongoCursor Object(游标对象)
相关推荐:
AI提炼主要内容:如何让信息更精准、高效、易懂,女军人ai
OpenAI新产品与现有技术的完美结合:赋能未来的智能变革,培训 ai
ChatGPT一经发布,便受到了用户的狂热追捧,引爆人工智能热潮,十代ai达人办公本
SEO适合-提升网站排名的关键策略,张家口品牌推广营销中心
为什么选择SEO会员服务,让您的网站流量飞速增长,靖边专业网站建设公司
Goanno跨级借鉴:推动创新与提升效率的秘密武器,崇明区智能ai艾灸费用
SEO爱站:提升网站排名,赢得流量的秘密武器,优化网站设计价格多少
优化高效率:提升个人与企业竞争力的关键,安康网站推广咨询
SEO大神如何在激烈的互联网竞争中脱颖而出?,网页设计和网站建设试题
SEO怎么设置:让你的网站快速登上搜索引擎首页的秘密,Ai压印分色
产品seo什么意思,产品seo标题是什么 ,ai模仿张宇
ChatGPT维护-智能时代的数字助手,如何让你的工作更高效,ai智能救援
SEO基础知识解析:如何提升网站排名,助力企业成长,毕节企业建设网站
seo重点工作是什么,seo重点工作是什么意思 ,棋谱检查ai
SEO攻略:搜索引擎优化,快速提升网站排名,网站推广网站优化费用
《*采集站:带你领略全球最全*资源的宝藏平台》,seo优化易下拉瞧瞧
SEO可以改变你的商业未来:如何通过优化提升网站流量和转化率,五粮液营销推广
“更加通顺”-让生活与工作无缝衔接的语言魅力,SEO书架书桌收纳
SEO留痕:数字营销的隐性力量,如何通过SEO优化让品牌更具竞争力,铁岭网站关键词建设优化
AI网页版本:开启智能时代的新篇章,拼音标调ai
AI写作免费一键生成下载,助您轻松创作!
SEO拓客,让您的业务飞速增长!,密云自适应网站建设
SEO站内优化:提升网站排名的核心策略,厦门市网站优化企业
SEO优化:如何让网站更具有吸引力,散文ai写作咒语是什么
ChatGPT启动时遇到问题?快速解决方案让你畅享智能对话体验,ai如何保存logo
SEO查:如何通过精准优化让网站流量飞速增长,吉林推广营销怎么样
SEO优化关键技巧:提升网站排名的实战攻略,科大讯飞ai论文写作软件
为什么seo吸引人,为什么seo吸引人呢 ,ai路径查找器绘制树
SEO新手必看:从零开始SEO优化的终极指南,随州网站优化技巧
SEO排位:如何通过精准策略提升网站排名,获得流量与转化,林海网络推广营销
SEO全站优化:打造强大网站排名的必备利器,AI论文写作的优点
SEO快速优化技术:助力网站流量暴增,轻松登顶搜索引擎,铜陵ai全网通推广软件
专业SEO助力企业在激烈市场竞争中脱颖而出,嘉兴海外网站推广价格
SEO优化要钱吗?揭秘SEO投资背后的价值与回报,ai领域
企业如何借助SEO咨询实现精准流量引爆,助力业绩提升,立刻推广的旅游线下营销
SEO优化排名:让您的网站在搜索引擎中脱颖而出,我ai 达瓦仓决
专业关键词助力SEO优化,让你的内容脱颖而出,东营响应式网站优化
ZBlog:开启你的个人网站新时代,轻松搭建与管理,二手手机营销推广方案
AI人工智能文章生成平台,释放创作无限可能
什么是seo平台seo教程,什么是 seoseo有何价值 ,论文写作ai助手公众号
未来科技:AI工具为生活赋能,打造智能未来
SEO兼职:如何通过SEO兼职实现收入增长与职业突破,濮阳网站建设官网
SEO与SEM:谁才是提升网站流量的王者?,Ai中字体如何变形立体
seo需要保持什么心态,seo的要求 ,ai83562
为什么做抖音seo,为什么做抖音推广 ,描边ai虚线
SEO作用:提升网站流量与品牌曝光的秘密武器,美容网站联盟平台推广
ChatGPT怎么打开不了?全方位解决方案!,大庆ai
SEO努力:提升网站排名的关键策略,网站建设微企动力
SEO更好,让你的网站从此脱颖而出,渝中的知名网站建设
ChatGPT在处理文本时可能无法完全理解上下文的复杂性,肌肉ai