Find a document with ObjectID in mongoDB

前端 未结 4 1698
暗喜
暗喜 2020-12-13 09:32

When I inserted some documents into a collection (without an ObjectID) mongoDB adds its own ObjectIDs.

I want to query a document by its unique ObjectID.

<         


        
4条回答
  •  猫巷女王i
    2020-12-13 10:02

    For MongoDB\Driver\Manager, a modern version of a MongoDB, you might consider the following working code:

    try {
      $DB_CONNECTION_STRING="mongodb://YourCredentials";
      require '../../vendor/autoload.php';
      $manager = new MongoDB\Driver\Manager( $DB_CONNECTION_STRING );
    
      $filter = ['_id' => new MongoDB\BSON\ObjectID( '5bdf54e6d722dc000f0aa6c2' )];
      $options = [];
    
      $query = new MongoDB\Driver\Query($filter, $options);     
      $docs = $manager->executeQuery('YourDbName.YourCollectionName', $query);
    }
    catch (MongoDB\Driver\Exception\Exception $e) { 
      $filename = basename(__FILE__); 
      echo "The $filename script has experienced an error.\n"; 
      echo "It failed with the following exception:\n"; 
      echo "Exception:", $e->getMessage(), "\n"; 
    } 
    

    For testing purposes:

    foreach ($docs as $doc) {
      print_r($doc);
      //or you can: echo "$doc->item  $row->qty  $row->status
    "; }

提交回复
热议问题