2010-01-04 38 views
7

Cách tốt nhất để theo dõi các thẻ duy nhất cho tập hợp các tài liệu hàng triệu mục lớn là gì? Cách thực hiện gắn thẻ bình thường có vẻ là lập chỉ mục multikeys. Tôi sẽ thường xuyên cần phải có được tất cả các phím duy nhất, mặc dù. Tôi không có quyền truy cập vào lệnh "khác biệt" mới của Mongodb, hoặc kể từ khi trình điều khiển của tôi, erlmongo, dường như không thực hiện nó.MongoDB: Cách tốt để có danh sách tất cả các thẻ duy nhất là gì?

Trả lời

10

Ngay cả khi trình điều khiển của bạn không thực hiện riêng biệt, bạn có thể tự mình thực hiện. Trong JavaScript (xin lỗi, tôi không biết Erlang, nhưng nó nên dịch khá trực tiếp) có thể nói:

result = db.$cmd.findOne({"distinct" : "collection_name", "key" : "tags"}) 

Vì vậy, đó là: bạn làm một findOne vào "$ cmd" bộ sưu tập của bất cứ cơ sở dữ liệu bạn' tái sử dụng. Chuyển tên bộ sưu tập và khóa bạn muốn chạy riêng biệt.

Nếu bạn cần lệnh mà trình điều khiển không cung cấp trợ giúp, bạn có thể xem http://www.mongodb.org/display/DOCS/List+of+Database+Commands để biết danh sách lệnh cơ sở dữ liệu đầy đủ.

+0

Awwwwww, vâng. :) –

1

Tôi biết đây là một câu hỏi cũ, nhưng tôi đã có cùng một vấn đề và không thể tìm thấy một giải pháp thực sự trong PHP cho nó.

Vì vậy, tôi đã đưa ra với điều này:

http://snipplr.com/view/59334/list-of-keys-used-in-mongodb-collection/

+0

Chào mừng bạn đến với Stack Overflow! Trong khi điều này về lý thuyết có thể trả lời câu hỏi, [nó sẽ là thích hợp hơn] (http://meta.stackexchange.com/q/8259) để bao gồm các phần thiết yếu của câu trả lời ở đây, và cung cấp liên kết để tham khảo. – oers

1

John, bạn có thể tìm thấy nó hữu ích để sử dụng đa dạng, một công cụ mã nguồn mở để phân tích sơ đồ của một bộ sưu tập: https://github.com/jamescropcho/variety

Có lẽ bạn có thể chạy Đa dạng sau mỗi N giờ trong nền và truy vấn cơ sở dữ liệu multipleResults vừa được tạo để truy xuất danh sách các khóa duy nhất bắt đầu bằng một chuỗi đã cho (nghĩa là các hậu duệ của một phụ huynh cụ thể).

Hãy cho tôi biết nếu bạn có bất kỳ câu hỏi nào hoặc cần thêm lời khuyên.

Chúc may mắn!

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