From db9125f4d83ca256eb572f92fc6baceec621882a Mon Sep 17 00:00:00 2001 From: Kristina Chodorow Date: Sat, 14 May 2011 15:09:38 +0000 Subject: [PATCH] added sql-to-mongo chart git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@311013 c90b9560-bf6c-de11-be94-00142212c4b1 --- reference/mongo/sqltomongo.xml | 261 +++++++++++++++++++++++++++++++++ 1 file changed, 261 insertions(+) create mode 100644 reference/mongo/sqltomongo.xml diff --git a/reference/mongo/sqltomongo.xml b/reference/mongo/sqltomongo.xml new file mode 100644 index 0000000000..c775636b68 --- /dev/null +++ b/reference/mongo/sqltomongo.xml @@ -0,0 +1,261 @@ + + +
+ SQL to Mongo Mapping Chart + + This is a PHP-specific version of the + SQL to Mongo + mapping chart in the main docs. + + + + + + + SQL Statement + Mongo Query Language Statement + + + + + + CREATE TABLE USERS (a Number, b Number) + + + Implicit or use MongoDB::createCollection. + + + + + INSERT 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 + + + $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")); + + + + +
+
+
+ +