MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

pobierz obiekt mongodb _id po upsert z php

Tak – jest to możliwe przy użyciu jednego zapytania.

MongoDB zawiera findAndModify polecenie, które może niepodzielnie zmodyfikować dokument i zwrócić go (domyślnie faktycznie zwraca dokument przed jego modyfikacją).

Sterowniki PHP nie zawierają dogodnej metody w klasie kolekcji (jeszcze -- sprawdź ten błąd), ale nadal można jej używać (pamiętaj,że moje PHP jest straszne,więc może popełniłembłąd składni w następującym fragmencie:

$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. Jak zamienić podciąg w dokumencie mongodb

  2. MongoDB wstawia się podczas próby wstawienia liczby całkowitej

  3. Obiekt MongoDB serializowany jako JSON

  4. Map-redukcja wydajności w MongoDb 2.2, 2.4 i 2.6

  5. Czy Mongoose zapewnia dostęp do poprzedniej wartości właściwości w pre('save')?