2012-02-10 38 views
5

Có thể thay đổi tên trường ObjectId từ '_id' thành 'id' hay cái gì khác không?Có thể cấu hình tên trường mặc định của ObjectId trong MongoDB không?

Tôi đã tìm kiếm trong các tài liệu và cho đến nay vẫn chưa tìm thấy bất kỳ điều gì liên quan đến điều này. Tôi đang sử dụng MongoDB với pymongo (trình điều khiển python) trên máy chủ, nơi tôi sẽ cung cấp các đối tượng JSON và thư viện js tôi đang sử dụng trên máy khách sẽ mong các đối tượng có trường 'id'.

Trả lời

3

Cơ sở dữ liệu sẽ luôn mong đợi hoặc thêm trường "_id", nhưng bạn thực sự có thể che giấu điều này từ ứng dụng khách trong một số trường hợp.

Khám phá references trên SONmanipulators. Bạn có thể chuyển đổi tài liệu khi bạn chèn chúng và trích xuất chúng để tự động thay đổi trường "_id" xuất hiện như thể nó là trường "id". Tuy nhiên, hãy cảnh báo rằng điều này sẽ chỉ chuyển đổi tài liệu - KHÔNG phải các truy vấn: findOne ({"id": "1234567890"}) sẽ không tìm thấy bất cứ điều gì vì trường "id" không thực sự tồn tại trong cơ sở dữ liệu.

Bạn sẽ phải tự quyết định xem đây có phải là ý tưởng hay đối với trường hợp sử dụng của bạn hay không.

3

Tôi không nghĩ vậy. Trường _id được tạo tự động cho mọi tài liệu được tạo. Bạn có thể tạo một trường id khác nếu bạn muốn sử dụng một cái gì đó khác như một giá trị số nguyên.

+0

Bạn nói đúng. Bạn không thể thay đổi nó. – Barrie

+0

Vâng, anh ta không thể trừ khi anh ta biên dịch lại mongo :-) –

Các vấn đề liên quan