MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

вземете mongodb _id обект след upsert с php

Да – възможно е да се използва една заявка.

MongoDB включва findAndModify команда, която може атомарно да модифицира документ и да го върне (по подразбиране всъщност връща документа, преди да е бил променен).

PHP драйверите не включват удобен метод за това в класа за събиране (все още -- вижте тази грешка), но все пак може да се използва (обърнете внимание, че моят PHP е ужасен, така че може да съм допуснал синтактична грешка в следния фрагмент):

$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. MongoDB - Издърпване на множество обекти от масив

  2. Поправяне на грешки в страницата в MongoDB

  3. Файлова система само за четене при опит за mkdir /data/db на Mac

  4. Форматирайте число като валута в SQL

  5. Удостоверяване на приложението NodeJS и MongoDB от JWT