/ / Come innalzare due campi? - php, mongodb

Come innalzare due campi? - php, mongodb

Come posso inviare (aggiornare se non aggiunto) due campi contemporaneamente? Ha funzionato per un singolo campo, ma non funziona più per due.

Sto facendo qualcosa di sbagliato?:

$db->url->update(
array("url" => $linkurlcache),
array("$set" => array("url" => $linkurlcache, "pos" => $rand_num)),
array("upsert" => true),
array("multi" => true)
);

risposte:

0 per risposta № 1

Odio davvero dover rispondere alla mia stessa domanda. L'avrei cancellato ma non riuscivo a trovare una soluzione su nessun sito web.

Comunque array("multi" => true) ha molto senso considerando che stiamo chiamando la funzione di aggiornamento, ma è sbagliato.

La soluzione corretta è senza di essa! Appena:

$db->url->update(
array("field1" => $field1),
array("$set" => array("field1" => $field1, "field2" => $field2)),
array("upsert" => true)
);

Perché upsert fa effettivamente un inserto (se la query non corrisponde).