sql >> Databáze >  >> NoSQL >> MongoDB

Jak odstranit dokument, na který odkazuje id v mongoDB z php?

Jako _id jste použili normální celé číslo (MongoInt32). pole. A MongoInt32 není totéž jako MongoID. Jsou to dvě různé třídy. Předpokládá se, že jej smažete pomocí:

$collection->remove( array( '_id' => new MongoInt32(1) ) );

Další informace:

MongoId se používá jako hodnota pro _id pole, pokud neděláte nastavte hodnotu sami, například pomocí:

$collection->insert( array( 'cust_id' => 'abc124' ) );

Pokud načtete tento dokument a var_dump(), které uvidíte:

array(2) {
  '_id' =>
  class MongoId#6 (1) {
    public $$id =>
    string(24) "51ee74e944670a09028d4fc9"
  }
  'cust_id' =>
  string(6) "abc124"
}

Poznámka v dokumentech znamená, že daný dokument nyní nemůžete odstranit pomocí:

$collection->remove( array( '_id' => '51ee74e944670a09028d4fc9' ) );

Ale místo toho budete muset použít:

$collection->remove( array( '_id' => new MongoID( '51ee74e944670a09028d4fc9' ) ) );

Jako poslední bod bych rád upozornil, že ve skutečnosti nemusíte používat new MongoInt32(1) v první řadě můžete použít:

$document = array (
    '_id' => 1,
    'cust_id' => 'abc124'
);

MongoInt32/MongoInt64 potřebujete pouze v případě, že používáte 32bitovou platformu (nebo Windows) a potřebujete se vypořádat s velkým počtem.



  1. MongoDB - Dotaz na kolekci

  2. Může mongo přenést data pole?

  3. Prevence vkládání JavaScriptu NoSQL v MongoDB

  4. 7 způsobů, jak zkontrolovat verzi MongoDB