MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Peta PHP MongoDB mengurangi kegagalan pernyataan db

Penting untuk diingat saat menggunakan mapReduce() bahwa nilai kembalian dari fungsi reduce() harus memiliki bentuk yang sama dengan yang Anda harapkan dalam elemen 'nilai' dari fungsi reduce() -- dan itu, pada gilirannya, harus memiliki bentuk yang sama dengan yang dipancarkan oleh fungsi emit().

Diberikan suatu koleksi yang berisi dokumen-dokumen dengan format sebagai berikut:

> db.posts.count();
1000
> db.posts.findOne();
{
    "_id" : 0,
    "date_posted" : ISODate("2012-04-04T05:54:44.535Z"),
    "topic_id" : "sierra"
}

Kode berikut akan menghasilkan output yang Anda inginkan:

<?php

$conn = new Mongo("localhost:$port");
$db = $conn->test;
$collection = $db->tst;

$map = new MongoCode(
    "function() { emit( this.topic_id, { last_post: this.date_posted } ); }"
);

$reduce = new MongoCode(
  "function(key, values) { ".
      "var max = ISODate('1970-01-01T00:00:00Z'); ".

      "values.forEach(function(val) { ".
          "if ( max < val.last_post ) max = val.last_post; ".
      "}); ".

      "return {last_post : max}; " .
  "}"
);


$result = $db->command( array(
    "mapreduce" => "posts",
    "map" => $map,
    "reduce" => $reduce,
    "query" => array( "topic_id" => "alpha"), 
    "out" => array( "merge" => "lastPosts")
    )
);
echo "result: "; print_r($result);

$collection = $db->lastPosts;
$cursor = $collection->find()->limit(6);

date_default_timezone_set("UTC");
foreach( $cursor as $doc ) {
    $date = date( "r", $doc['value']['last_post']->sec );
    echo $doc['_id'] . " last visited at " . $date ."\n" ;
}

?>



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Hitungan berbeda dari beberapa bidang menggunakan agregasi mongodb

  2. Kombinasi beberapa kolom unik luwak nodejs

  3. async nodejs meminta dan memproses hasil

  4. Jenis bersyarat Mongodb

  5. Apa yang dimaksud dengan filesize dan datasize di MongoDB?