Khi tên collection chứa ký tự đặc biệt (như dấu gạch ngang `--`), không thể truy cập trực tiếp bằng ký hiệu chấm (dot notation). Cần sử dụng phương thức db.getCollection() để tham chiếu collection bằng chuỗi tên.
Cú pháp xóa collection
db.getCollection("yourCollectionNameWithTwoDashes").drop();
Tạo collection có tên chứa `--`
> db.createCollection("company--EmployeeInformation");
{ "ok" : 1 }
Thêm dữ liệu vào collection
> db.getCollection("company--EmployeeInformation").insertOne({"CompanyName":"Amazon","EmployeeName":"Chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd7c5ff6d78f205348bc654") }
> db.getCollection("company--EmployeeInformation").insertOne({"CompanyName":"Google","EmployeeName":"Robert"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd7c60b6d78f205348bc655") }
Xem dữ liệu
> db.getCollection("company--EmployeeInformation").find();
Xóa collection
> db.getCollection("company--EmployeeInformation").drop();Kết quả
trueGiải thích
db.getCollection("name"): Trả về đối tượng collection, cho phép tên bất kỳ (có khoảng trắng, dấu gạch, số, ký tự đặc biệt)drop(): Xóa toàn bộ collection (dữ liệu + index)- Trả về
truenếu thành công,falsenếu collection không tồn tại
Các thao tác khác với getCollection
Khi nào cần getCollection?
- Tên collection chứa: khoảng trắng, dấu gạch ngang `-`, dấu chấm `.`, số bắt đầu, ký tự đặc biệt
- Tên collection trùng từ khóa reserved (ví dụ:
db.version- version là method của db) - Tên collection động (từ biến)
Ví dụ tên đặc biệt khác
Lưu ý
db.collectionNamechỉ hoạt động với tên hợp lệ JavaScript identifiergetCollection()luôn an toàn cho mọi tên- Trong driver (Node.js, Python...):
db.collection("name-with-dashes")