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

dapatkan objek mongodb _id setelah upsert dengan php

Ya -- Bisa menggunakan satu kueri.

MongoDB menyertakan findAndModify perintah yang secara atom dapat memodifikasi dokumen dan mengembalikannya (secara default sebenarnya mengembalikan dokumen sebelum diubah).

Driver PHP tidak menyertakan metode yang nyaman untuk ini di kelas koleksi (belum -- periksa bug ini), tetapi masih dapat digunakan (perhatikan bahwa PHP saya buruk, jadi saya mungkin telah membuat kesalahan sintaksis dalam cuplikan berikut):

$key = array( 'something' => 'unique' );
$data = array( '$inc' => array( 'someint' => 1 ) );
$result = $mongodb->db->command( array(
    'findAndModify' => 'collection',
    'query' => $key,
    'update' => $data,
    'new' => true,        # To get back the document after the upsert
    'upsert' => true,
    'fields' => array( '_id' => 1 )   # Only return _id field
) );
$id = $result['value']['_id'];


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Gabungkan dua kueri OR dengan AND di Mongoose

  2. MongoDB $objectToArray

  3. Menerapkan Pagination dengan MongoDB, Express.js &Slush

  4. Dapatkan BinData UUID dari Mongo sebagai string

  5. Tidak dapat memulai gambar docker mongo di windows