博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ttlsa教程系列之mongodb——(三)mongodb的增删查改
阅读量:7022 次
发布时间:2019-06-28

本文共 7157 字,大约阅读时间需要 23 分钟。

  hot3.png

对数据库进行增删查改是最基本的技能,也没什么诀窍,完全是熟能生巧,多多练习。 1. SQL Statement VS. Mongo Query Language Statement
SQL Statement                                       Mongo Query Language StatementINSERT INTO USERS VALUES(1,1)	                    $db->users->insert(array("a" => 1, "b" => 1));SELECT a,b FROM users	                            $db->users->find(array(), array("a" => 1, "b" => 1));SELECT * FROM users WHERE age=33	                $db->users->find(array("age" => 33));SELECT a,b FROM users WHERE age=33	                $db->users->find(array("age" => 33), array("a" => 1, "b" => 1));SELECT a,b FROM users WHERE age=33 ORDER BY name	$db->users->find(array("age" => 33), array("a" => 1, "b" => 1))->sort(array("name" => 1));SELECT * FROM users WHERE age>33                    $db->users->find(array("age" => array('$gt' => 33)));SELECT * FROM users WHERE age<33                    $db->users->find(array("age" => array('$lt' => 33)));SELECT * FROM users WHERE name LIKE "%Joe%"	        $db->users->find(array("name" => new MongoRegex("/Joe/")));SELECT * FROM users WHERE name LIKE "Joe%"	        $db->users->find(array("name" => new MongoRegex("/^Joe/")));SELECT * FROM users WHERE age>33 AND age<=40        $db->users->find(array("age" => array('$gt' => 33, '$lte' => 40)));SELECT * FROM users ORDER BY name DESC	            $db->users->find()->sort(array("name" => -1));CREATE INDEX myindexname ON users(name)	            $db->users->ensureIndex(array("name" => 1));CREATE INDEX myindexname ON users(name,ts DESC)	    $db->users->ensureIndex(array("name" => 1, "ts" => -1));SELECT * FROM users WHERE a=1 and b='q'	            $db->users->find(array("a" => 1, "b" => "q"));SELECT * FROM users LIMIT 10 SKIP 20	            $db->users->find()->limit(10)->skip(20);SELECT * FROM users WHERE a=1 or b=2	            $db->users->find(array('$or' => array(array("a" => 1), array("b" => 2))));SELECT * FROM users LIMIT 1	                        $db->users->find()->limit(1);EXPLAIN SELECT * FROM users WHERE z=3	            $db->users->find(array("z" => 3))->explain()SELECT DISTINCT last_name FROM users	            $db->command(array("distinct" => "users", "key" => "last_name"));SELECT COUNT(*y) FROM users	                        $db->users->count();SELECT COUNT(*y) FROM users where AGE > 30          $db->users->find(array("age" => array('$gt' => 30)))->count();SELECT COUNT(AGE) from users	                    $db->users->find(array("age" => array('$exists' => true)))->count();UPDATE users SET a=1 WHERE b='q'	                $db->users->update(array("b" => "q"), array('$set' => array("a" => 1)));UPDATE users SET a=a+2 WHERE b='q'	                $db->users->update(array("b" => "q"), array('$inc' => array("a" => 2)));DELETE FROM users WHERE z="abc"	                    $db->users->remove(array("z" => "abc"));
2. mongodb查询操作
Operator      Meaning                        Example                                             SQL Equivalent$gt           Greater Than                   “score”:{"$gt”:0}                                    >$lt           Less Than                      “score”:{"$lt”:0}                                    <$gte          Greater Than or Equal          “score”:{"$gte”:0}                                   >=$lte          Less Than or Equal             “score”:{"$lte”:0}                                   ?$all          Array Must Contain All         “skills”:{"$all”:["mongodb”,"python"]}               N/A$exists       Property Must Exist            “email”:{"$exists”:True}                             N/A$mod          Modulo X Equals Y              “seconds”:{"$mod”:[60,0]}                            MOD()$ne           Not Equals                     “seconds”:{"$ne”:60}                                 !=$in           In                             “skills”:{"$in”:["c”,"c++"]}                          IN$nin          Not In                         “skills”:{"$nin”:["php”,"ruby”,"perl"]}               NOT IN$nor          Nor                            “$nor”:[{"language”:"english"},{"country”:"usa"}]     N/A$or           Or                             “$or”:[{"language”:"english"},{"country”:"usa"}]      OR$size         Array Must Be Of Size          “skills”:{"$size”:3}                                  N/A
3. mongodb更新修改
Modifier     Meaning                                          Example$inc         Atomic Increment                                 “$inc”:{"score”:1}$set         Set Property Value                               “$set”:{"username”:"niall"}$unset       Unset (delete) Property                          “$unset”:{"username”:1}$push        Atomic Array Append (atom)                       “$push”:{"emails”:"foo@example.com"}$pushAll     Atomic Array Append (list)                       “$pushall”:{"emails”:["foo@example.com”,"foo2@example.com"]}$addToSet    Atomic Append-If-Not-Present                     “$addToSet”:{"emails”:"foo@example.com"}$pop         Atomic Array Tail Remove                         “$pop”:{"emails”:1}$pull        Atomic Conditional Array Item Removal            “$pull”:{"emails”:"foo@example.com"}$pullAll     Atomic Array Multi Item Removal                  “$pullAll”:{"emails”:["foo@example.com”, “foo2@example.com"]}$rename      Atomic Property Rename                           “$rename”:{"emails”:"old_emails"}
4. 批量插入 将多个文档插入到一个集合中,使用批量插入来加快插入速度。在shell环境下,可以使用batchInsert函数。如:
>db.ttlsa.batchInsert([{"_id":0},{"_id":1},{"_id":2},{"_id":3}])
注意: a. 批量插入只能针对单个集合。 b. 插入的大小不能超过48MB。 5. php连接mongodb a. 对于启用验证
$connection = new MongoClient("mongodb://${username}:${password}@localhost");$connection = new MongoClient("mongodb://localhost", array("username" => $username, "password" => $password));
b. 复制集
$connection = new MongoClient("mongodb://rs1.example.com:27017,rs2.example.com:27017/?replicaSet=myReplSetName"));$connection = new MongoClient("mongodb://rs1.example.com:27017", array("replicaSet" => "myReplSetName"));$connection = new MongoClient("mongodb://rs1.example.com:27017,rs2.example.com:27017", array("replicaSet" => "myReplSetName"));
c. 分片
$connection = new MongoClient("mongodb://mongos1.example.com:27017");$connection = new MongoClient("mongodb://mongos1.example.com:27017,mongos2.example.com:27017"));
6. 选择数据库
$db = $connection->selectDB('dbname');$db = $connection->dbname;
7. 创建或选择已存在的集合
$collection = $db->col_name;$col_name = $connection->dbname->col_name;
8. 创建文档
$col_contant = array('website' => 'www.ttlsa.com', 'QQqun' => 39514058, 'email' => 'service@ttlsa.com');$col_name->insert($col_contant); //异步插入$col_name->insert($col_contant, array('safe' => true)); //同步插入
9. 查询
$id = new MongoId('objectid_No.');$row = $col_name->findone( array( '_id' => $id ) );$row = $col_name->findone( array('website' => 'www.ttlsa.com'));$e-mail = $db->col_name->findone( array('website' => 'www.ttlsa.com'),array('email'));
10. 更新文档
$col_name->update( array('_id' => new MongoId('objectid_No.')), array('$set' => array('email' => 'ttlsa@ttlsa.com')));
11. 删除文档
$criteria = array('_id' => new MongoId('objectid_No.'));$col_name->remove($criteria, array("justOne" => true));
: http://www.ttlsa.com/html/1636.html

转载于:https://my.oschina.net/766/blog/211323

你可能感兴趣的文章
21. Merge Two Sorted Lists
查看>>
SQL Server中date和datetime的区别
查看>>
HDu Battle
查看>>
python学习笔记Day4
查看>>
网站域名重定向
查看>>
Python全栈开发-有趣的小程序
查看>>
sdfsdsf
查看>>
最简单的实体手机测试移动端前端Vue Cli3搭建网站的方法
查看>>
AbsoluteDefense 项目Beta版本Postmortem结果
查看>>
数据结构和算法——将序列分解为单独的变量
查看>>
Kali Linux 安装教程-转
查看>>
【转360】KB4041678 Windows 仅安全更新(2017.10) 补丁更新后执行SQL出错! http://bbs.360.cn/thread-15201531-1-1.html...
查看>>
phantomjs + python 打造一个微信机器人
查看>>
[shell命令]文件查看/拼接:wc,sed,awk,cut,grep,paste,sz,cz
查看>>
【搜索】P1468 派对灯 Party Lamps
查看>>
C语言实现链表的原地置逆
查看>>
JavaScript关于闭包的理解和实例
查看>>
jquery-ui-widget
查看>>
VC Error spawning cl.exe
查看>>
IIS连接数据库:数据库连接出错,请检查连接字串
查看>>