vivion27 发表于 2015-7-7 07:01:40

mongoDB应用

查询:   MySQL:

    SELECT * FROM user
Mongo:   
    db.user.find()


MySQL:
    SELECT * FROM user WHERE name = 'starlee'
Mongo:   
    db.user.find({'name' : 'starlee'})  插入:
  MySQL:
  INSERT INOT user (`name`, `age`) values ('starlee',25)
  Mongo:   
  db.user.insert({'name' : 'starlee', 'age' : 25})
  

  if you want add acolumn `email` on MySQL,you must :
  ALTER TABLE user….
  But in Mongo,you can just:   
  db.user.insert({'name' : 'starlee', 'age' : 25, 'email' : 'starlee@starlee.com'})
  

  删除:
  MySQL:
  DELETE * FROM user
  Mongo:   
  db.user.remove({})
  

  MySQL:
  DELETE FROM user WHERE age < 30
  Mongo:   
  db.user.remove({'age' : {$lt : 30}})
  

  $gt : > ; $gte : >= ; $lt : < ; $lte :20
  Mongo:   
  db.user.distinct('name', {'age': {$lt : 20}})
  
  MySQL:
  SELECT name, sum(marks) FROM user GROUP BY name
  Mongo:   
  db.user.group({
  key : {'name' : true},
  cond: {'name' : 'foo'},
  reduce: function(obj,prev) { prev.msum += obj.marks; },
  initial: {msum : 0}
  });
  

  MySQL:
  SELECT name FROM user WHERE age < 20
  Mongo:   
  db.user.find('this.age < 20', {name : 1})
  更多高级应用:http://www.mongodb.org/display/DOCS/Advanced+Queries
  ===================Sharding=====================
  >db.runCommand({addShard:"[:]>"});
  >db.runCommand({enablesharding:""});
  >db.runCommand({shardcollection:"test.users",key:{email:1},unique:true}) ;
  ===================GridFS=====================
  files:object metadata
  


{
    "_id" : ,   //unique ID for this file
    "filename" : data_string,    //human name for the file
    "contentType" : data_string, //valid mime type for the object
    "length" : data_number,      //size of the file in bytes
    "chunkSize" : data_number,   //size of each of the chunks.Default is 256k
    "uploadDate" : data_date,    //date when object first stored
    "aliases" : data_array of data_string, //optional array of alias strings
    "metadata" : data_object,    //anything the user wants to store
    "md5" :data_string,          //result of running the "filemd5" command on this file's chunks

}   
  
  chunks:binary data


{
    "_id" : ,   //object id of the chunk in the chunks collection
    "file_id" : , //_id value of the owning {{files}} collection entry
    "n" : data_number,         //"chunk number" - chunks are numbered in order,starting with 0
    "data" :data_binary (type 0x02), // binary data for chunk
}  
  
  ================Use GridFS in PHP=====================
   1 /**


2 * Store image
3 *
4 * @param string $file
5 * @return int
6 */
7 public funtion storeFile($file){
8   $mongo= new Cola_Mongo();
9   return $mongo->storeFile('/path/to/starlee.jpg');
10 }
11 /**
12 * Display image
13 *
14 */
15 public function display(){
16   $mongo = new Cola_Mongo();
17   $file = $mongo->file('/path/to/starlee.jpg');
18   header("Content-type:image/jpeg");
19   echo $file->getBytes();
20 }  
页: [1]
查看完整版本: mongoDB应用