MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Làm cách nào để xóa tài liệu được tham chiếu bởi id trong mongoDB khỏi php?

Bạn đã sử dụng một số nguyên bình thường (MongoInt32) làm _id đồng ruộng. Và MongoInt32 không giống với MongoID. Họ là hai giai cấp khác nhau. Bạn có thể xóa nó bằng:

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

Thông tin bổ sung:

MongoId được sử dụng làm giá trị cho _id trường nếu bạn không tự đặt giá trị, chẳng hạn như với:

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

Nếu bạn truy xuất tài liệu này và var_dump () mà bạn sẽ thấy:

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

Ghi chú trong tài liệu có nghĩa là bạn không thể xóa tài liệu đó ngay bây giờ bằng:

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

Nhưng thay vào đó, bạn sẽ cần sử dụng:

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

Điểm cuối cùng tôi muốn nêu ra rằng bạn không thực sự phải sử dụng new MongoInt32(1) ngay từ đầu, bạn chỉ có thể sử dụng:

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

Bạn chỉ cần MongoInt32 / MongoInt64 trong trường hợp bạn đang sử dụng nền tảng 32 bit (hoặc Windows) và cần xử lý số lượng lớn.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB $ isoWeek

  2. Khóa ngoại trong mongo?

  3. MongoDB Node findone làm thế nào để xử lý không có kết quả?

  4. Xóa khóa / giá trị khỏi mục nhập MongoDB hiện có

  5. Tổng quan về Công cụ lưu trữ WiredTiger cho MongoDB