- Tạo ứng dụng Spring Boot bằng Spring Launchizr
- Cấu hình Cassandra trong Spring Boot
- Định cấu hình nhóm kết nối Tomcat trên Spring Boot
- Định tuyến tin nhắn Camel đến Artemis được nhúng bằng WildFly
Theo mặc định, trường _id trong bộ sưu tập là chỉ mục, chúng ta có thể chuyểngetIndexes()
Phương pháp xem chỉ mục trong bộ sưu tập
> db.user.getIndexes() [ { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_" } ]
Ở đây chúng ta có thể thấy rằng chỉ có một chỉ mục của _id
Ở đây chúng ta tạo chỉ mục (1 nghĩa là thứ tự tăng dần, -1 nghĩa là thứ tự giảm dần)
> db.user.createIndex({"name":1}) { "numIndexesBefore" : 1, "numIndexesAfter" : 2, "createdCollectionAutomatically" : false, "ok" : 1 }
createIndex() nhận các tham số tùy chọn
tham số | Kiểu | Sự miêu tả |
---|---|---|
lý lịch | Boolean | Quá trình xây dựng chỉ mục sẽ chặn các hoạt động cơ sở dữ liệu khác có thể được chỉ định để tạo chỉ mục trong nền, nghĩa là thêm tham số tùy chọn "nền". giá trị mặc định "nền" là sai |
độc nhất | Boolean | Liệu chỉ mục được tạo có phải là duy nhất hay không. Chỉ định true để tạo chỉ mục duy nhất. Giá trị mặc định là sai |
tên | sợi dây | Tên của chỉ mục. Nếu không được chỉ định, MongoDB sẽ tạo tên chỉ mục bằng cách ghép tên trường của chỉ mục và thứ tự sắp xếp. |
thảDups | Boolean | Có xóa bản ghi trùng lặp khi tạo chỉ mục duy nhất hay không, hãy chỉ định true để tạo chỉ mục duy nhất. Giá trị mặc định là sai |
thưa thớt | Boolean | Lập chỉ mục không được kích hoạt cho dữ liệu trường không tồn tại trong tài liệu. Thông số này đòi hỏi sự chú ý đặc biệt. Nếu được đặt thành true, các tài liệu không bao gồm trường tương ứng sẽ không được truy vấn trong trường chỉ mục. Giá trị mặc định là sai |
hết hạnSau giây | số nguyên | Chỉ định một giá trị tính bằng giây để hoàn tất cài đặt TTL và đặt thời gian tồn tại của bộ sưu tập. |
v | phiên bản chỉ mục | Số phiên bản của chỉ mục. Số phiên bản chỉ mục mặc định phụ thuộc vào số phiên bản được mongod thực thi khi tạo chỉ mục. |
trọng lượng | tài liệu | Giá trị trọng số chỉ số. Giá trị nằm trong khoảng từ 1 đến 99.999, biểu thị trọng số điểm của chỉ mục so với các trường chỉ mục khác. |
ngôn ngữ mặc định | sợi dây | Để lập chỉ mục văn bản. Tham số này xác định danh sách các từ dừng và quy tắc cho gốc và mã thông báo. Mặc định là tiếng Anh |
ngôn ngữ_override | sợi dây | Để lập chỉ mục văn bản. Tham số này chỉ định tên trường có trong tài liệu. Ngôn ngữ ghi đè ngôn ngữ mặc định, mặc định là ngôn ngữ. |
Miễn là một trường được chỉ định là duy nhất thì giá trị trường giống nhau không được phép tồn tại trong cùng một bộ sưu tập.MongoDBChỉ mục duy nhất được tạo theo mặc định là _id.
Một chỉ mục duy nhất thường được tạo như thế này:
> db.members.createIndex( { "user_id": 1 }, { Unique: true } )
Chỉ mục đơn tạo ra một chỉ mục duy nhất, chẳng hạn như:
> db.persons.createIndex({name:1},{unique:true})
Khóa tổng hợp tạo các chỉ mục duy nhất, chẳng hạn như:
> db.persons.createIndex({name:1,email:1},{unique:true})
Khi có nhiều điều kiện truy vấn, chúng ta cần tạo chỉ mục tổng hợp.
Chỉ mục tổng hợp là chỉ mục trên hai trường trở lên và nó có thể hỗ trợ các truy vấn dựa trên các trường này
db.COLLECTION_NAME.createIndex(key1:1,key2:1)
Nếu tài liệu chứa trường kiểu mảng, bạn có thể lập chỉ mục trực tiếp tên của nó để MongoDB sẽ tạo chỉ mục độc lập cho từng phần tử trong mảng được nhúng.
Lưu ý: Đánh chỉ mục nhiều khóa không tương đương với việc tạo chỉ mục trên trường nhiều cột (chỉ mục tổng hợp)
Chỉ mục nhiều khóa được tạo theo dạng giống như chỉ mục một khóa, sự khác biệt nằm ở loại trường.
ngữ pháp:
db.COLLECTION_NAME.createIndex({key:< 1 hoặc -1 >})
Ví dụ: Tại thời điểm này, chúng tôi tạo chỉ mục cho trường cấu trúc của bộ sưu tập giấy tờ.
> db.papers.createIndex({structures:1})
Vì trường cấu trúc là một mảng nên chỉ mục này được gọi là chỉ mục đa khóa.
Chỉ mục một phần là chỉ mục có điều kiện lọc, nghĩa là chỉ mục chỉ tồn tại trên một số tài liệu nhất định.
ngữ pháp:
db.collection.createIndex(phím, tùy chọn)
các tùy chọn có thể sử dụng một phầnFilterExpression, đây là biểu thức lọc một phần có loại là loại tài liệu
Các biểu thức lọc thường bao gồm: $exists, $gt, $gte, $lt, lte, lte,lte,type,$and
Ví dụ:
db.persons.createIndex({name:1},{partialFilterExpression:{age: {$gt:25}}})
Câu này có nghĩa là: Tạo chỉ mục một phần dựa trên cột tuổi lớn hơn 25 tuổi.
MongoDB cung cấp các chỉ mục văn bản để hỗ trợ các truy vấn tìm kiếm văn bản trên nội dung chuỗi. Chỉ mục văn bản có thể bao gồm bất kỳ trường nào có giá trị là một chuỗi hoặc một mảng các phần tử chuỗi.
Chỉ mục văn bản, như tên cho thấy, được sử dụng để tìm kiếm văn bản. Nó có thể được sử dụng để tìm kiếm tất cả các giá trị hoặc giá trị tương ứng với một trường được chỉ định. Miễn là giá trị tương ứng của trường là một chuỗi hoặc giá trị tương ứng là một mảng và các phần tử trong mảng là chuỗi thì chỉ mục văn bản có thể lập chỉ mục cho trường.
Để tạo chỉ mục văn bản, hãy sử dụng phương thức db.collection.createIndex(). Để lập chỉ mục một trường chứa một chuỗi hoặc một mảng các phần tử chuỗi, hãy bao gồm trường đó và chỉ định "văn bản" chuỗi ký tự trong tài liệu chỉ mục.
Ví dụ:
> db.collection.createIndex({keys:”text”}) > db.collection.createIndex({subject:”text”,comments:”text”})
getIndexes() có thể được sử dụng để xem tất cả các chỉ mục của bộ sưu tập
> db.exams.getIndexes() [ { "v" : 2, // Phiên bản chỉ mục "key" : { // Các trường được lập chỉ mục và hướng sắp xếp "_id" : 1 // Lập chỉ mục theo thứ tự tăng dần dựa trên trường _id}, "name " : "_id_", //Tên chỉ mục "ns" : "Steam.exams" //Tên bộ sưu tập} ]
getIndexKeys() Xem các khóa chỉ mục
> db.exams.getIndexKeys() [ { "_id" : 1 } ]
TotalIndexSize() Xem tổng kích thước của chỉ mục bộ sưu tập
> db.exams.totalIndexSize() 65536
phương thức getIndexSpecs() để xem thông tin chi tiết db của từng chỉ mục trong bộ sưu tập
Phương thức dropIndex() được sử dụng để xóa chỉ mục đã chỉ định
Phương thức dropIndexes() được sử dụng để xóa tất cả các chỉ mục
Ví dụ 1: Cách sử dụng dropIndex()
> db.users.dropIndexes()
Tôi đã triển khai bộ trạng thái 3 pod mongodb trong kubernetes và tôi đang cố gắng sử dụng chuỗi kết nối mongodb+srv mới (mongodb 3.6) để kết nối với máy chủ có S
Tôi đã tạo tài khoản MongoDB Atlas và cố gắng kết nối. Nhưng lỗi sau xảy ra. Lỗi kết nối MongoDB MongoNetworkError: Không thể kết nối với máy chủ [cluster0-shard] trong lần kết nối đầu tiên
Tôi đang sử dụng Node-WebKit để tạo ứng dụng dành cho máy tính để bàn. Về cơ bản, ứng dụng này tạo ra các tài liệu (chi tiết về công việc hàng ngày của nhân viên) mà bất kỳ người dùng đã đăng ký nào cũng có thể nhận xét. Tài liệu tôi đang tạo sẽ được chia thành nhiều phần. Người dùng sẽ đăng bài trên một phần cụ thể
Tôi đang cố gắng cài đặt mongo DB trên máy cục bộ của mình bằng trình cài đặt từ trang web chính thức. Nhưng tôi cứ nhận được tin nhắn này, có ai giúp được không? Tôi đã thử giải pháp được cung cấp ở đây nhưng không hiệu quả. Câu trả lời hay nhất Tôi khuyên bạn nên làm như sau: Nhấn Wi
Tôi còn rất mới với MongoDB và MongoDB Compass. Tôi có khoảng 1000 hồ sơ trong bộ sưu tập khách hàng của mình. Cách xóa tất cả các bản ghi cùng một lúc thông qua la bàn MongoDB. Cảm ơn bạn rất nhiều, câu trả lời tốt nhất bạn có thể sử dụng Mo
Khi tôi cố gắng cài đặt mongodb trong máy Ubuntu của mình, apt-get hiển thị các tùy chọn sau mongodb mongodb-clients mongodb-dev mongodb-server Có ai có thể không
Làm cách nào để kết nối Robomongo (hoặc bất kỳ ứng dụng khách mongodb nào khác) với phiên bản mongodb được tạo bởi ứng dụng Meteor cục bộ? Câu trả lời hay nhất Hãy đảm bảo rằng Meteor đang chạy trên localhost. Mở một cửa sổ terminal và chạy
Tôi cần tạo một bảng tần số đơn giản trong MongoDB. Giả sử tôi có các tài liệu sau trong bộ sưu tập có tên books. { "_id": 1, thể loại: [ "Giả tưởng", "Tội phạm"
Làm cách nào tôi có thể chỉ định một điều kiện trong mongos mapreduce giống như chúng ta làm trong hàm nhóm mongos. Dữ liệu của tôi giống như thế này {lid:1000, age:23}, {lid:3000, a
Tôi có một số ID trong tài liệu cơ sở dữ liệu mongodb của mình. Tôi cần tạo chỉ mục trên các ID này thông qua một tập lệnh để không phải chạy đi chạy lại lệnh EnsureIndex. db.getCollection("phần tử
Trong cơ sở dữ liệu của tôi, mỗi tài liệu chứa các mục có một mảng các phần tử lồng nhau theo định dạng sau: Elements:[ { "elem_id": 12, items: [ {"i_id": 1
Tôi đang xây dựng một ứng dụng trong đó người dùng có thể ở các múi giờ khác nhau và các truy vấn tôi chạy rất nhạy cảm với múi giờ của họ. Vấn đề tôi gặp phải là MongoDB dường như bỏ qua múi giờ khi truy vấn! Đây là trường ngày "2019-09-29T23:52:13
Tôi đang xem xét phân đoạn bằng mongodb, tôi có cấu trúc sau: 1 Mongod cho Máy chủ cấu hình của tôi chỉ có 1 thành viên trong ReplicaSet 2 phân đoạn, mỗi phân đoạn trong ReplicaS
Tôi đang cố gắng để một đối tượng mongoDB như Friend1 chứa một đối tượng mongoDB khác Friend2, đối tượng này chứa đối tượng đầu tiên Friend1 về cơ bản biến nó thành một tham chiếu đối tượng hình tròn. Hoặc cái này hoặc
đóng cửa. Câu hỏi này lạc đề. Hiện tại nó không chấp nhận câu trả lời. Bạn muốn cải thiện câu hỏi này? Đã cập nhật câu hỏi để nó phù hợp với chủ đề về Stack Overflow. Đóng cửa 9 năm trước Cải thiện hàng đợi này
Phiên bản Mongo 5.0.2. Ubuntu 20.0 Tôi đã kích hoạt bảo mật cho kết nối MongoDB trong localhost. Tôi đang cố gắng kết nối quảng cáo MongoDBmongo localhost của mình bằng cách sử dụng chi tiết xác thực bằng lệnh sau
Tôi sắp nâng cấp môi trường MongoDB được phân chia từ 2.0.7 lên 2.2.9 và cuối cùng tôi muốn nâng cấp lên 2.4.9, nhưng rõ ràng là tôi cần phải thực hiện điều đó thông qua 2.2. Ghi chú phát hành cho 2.2 nêu rõ rằng máy chủ cấu hình nên nâng cấp các tệp nhị phân của nó trước, sau đó
Hiện tại, tôi không thể kết nối từ xa với máy chủ mongodb trên máy Ubuntu ảo của mình. Tôi không thể kết nối bằng ứng dụng khách Robomongo chạy trên PC Windows của tôi, PC này cũng đang chạy vm. Cái này dành cho hai máy tính
Tôi đã tạo một cụm mongodb miễn phí. Tôi đã tạo một người dùng, thiết lập kết nối với la bàn mongodb, sao chép chuỗi kết nối và mở la bàn mongodb của mình. Dán chuỗi đã sao chép vào đó
Tôi đã tạo chỉ mục thu thập cơ sở dữ liệu mongo bằng mã java dbCollection.createIndex("accountNumber"); khi tôi thấy chỉ mục bằng db.accounts.getInde
Tôi là một lập trình viên xuất sắc, rất giỏi!