Làm cách nào để xóa chỉ mục khỏi MongoDB?


Chúng tôi đã học cách sử dụng chỉ mục/khóa trên bộ sưu tập của mình và cách tạo chỉ mục. Bây giờ, trong video hướng dẫn này, chúng ta hãy tìm hiểu cách lấy chỉ mục trên từng bộ sưu tập và cách bỏ/xóa/xóa chỉ mục mà chúng ta đã tạo

Làm cách nào để xóa chỉ mục khỏi MongoDB?
Làm cách nào để xóa chỉ mục khỏi MongoDB?

Đọc liên quan. tạo chỉ mục. MongoDB

nhiệt độ. Tên cơ sở dữ liệu
không, cái khác. tên bộ sưu tập
Chúng tôi có 10 triệu tài liệu trong bộ sưu tập “không”

tài liệu mẫu

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
> use temp
switched to db temp
> show collections
no
system.indexes
 
> db.no.find({"student_id": {$lt: 3}}).pretty()
{
        "_id" : ObjectId("53c9020abcdd1ea7fb833cda"),
        "student_id" : 0,
        "name" : "Satish"
}
{
        "_id" : ObjectId("53c9020abcdd1ea7fb833cdb"),
        "student_id" : 1,
        "name" : "Satish"
}
{
        "_id" : ObjectId("53c9020abcdd1ea7fb833cdc"),
        "student_id" : 2,
        "name" : "Satish"
}

> sử dụng tạm thời chuyển sang db temp > hiển thị bộ sưu tập không có hệ thống. chỉ mục > db. không. tìm ({"student_id". {$lt. 3}}). xinh() { "_id". ObjectId("53c9020abcdd1ea7fb833cda"), "student_id". 0, "tên". "Satish" } { "_id". ObjectId("53c9020abcdd1ea7fb833cdb"), "student_id". 1, "tên". "Satish" } { "_id". ObjectId("53c9020abcdd1ea7fb833cdc"), "student_id". 2, "tên". "Satish" }

Tìm nạp Chỉ mục và Thả/xóa Chỉ mục. MongoDB



Làm cách nào để xóa chỉ mục khỏi MongoDB?
báo cáo quảng cáo này Liên kết YouTube. https. //www. youtube. com/watch?v=qYHIRWHS_5I [Xem Video Ở Toàn Màn Hình. ]



Chúng ta sẽ xem xét “hệ thống. bộ sưu tập chỉ mục

1
2
3
4
5
> db.system.indexes.find()
{ "v" : 1, "key" : { "_id" : 1 }, 
           "name" : "_id_", "ns" : "temp.no" }
{ "v" : 1, "key" : { "student_id" : 1 }, 
           "name" : "student_id_1", "ns" : "temp.no" }

> db. hệ thống. chỉ số. tìm() { "v". 1, "chìa khóa". { "_Tôi". 1 }, "tên". "_id_", "ns". "nhiệt độ. no" } { "v". 1, "chìa khóa". { "thẻ học sinh". 1 }, "tên". "sinh viên_id_1", "ns". "nhiệt độ. không" }

Tạo bộ sưu tập “khác”

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
> db.another.insert({"name": "Satish", "age": 27});
WriteResult({ "nInserted" : 1 })
 
> show collections
another
no
system.indexes
 
> db.system.indexes.find()
{ "v" : 1, "key" : { "_id" : 1 }, 
           "name" : "_id_", "ns" : "temp.no" }
{ "v" : 1, "key" : { "student_id" : 1 }, 
           "name" : "student_id_1", "ns" : "temp.no" }
{ "v" : 1, "key" : { "_id" : 1 }, 
           "name" : "_id_", "ns" : "temp.another" }

> db. khác. điền tên". "Satish", "tuổi tác". 27}); . 1 }) > hiển thị bộ sưu tập khác không có hệ thống. chỉ mục > db. hệ thống. chỉ số. tìm() { "v". 1, "chìa khóa". { "_Tôi". 1 }, "tên". "_id_", "ns". "nhiệt độ. no" } { "v". 1, "chìa khóa". { "thẻ học sinh". 1 }, "tên". "sinh viên_id_1", "ns". "nhiệt độ. no" } { "v". 1, "chìa khóa". { "_Tôi". 1 }, "tên". "_id_", "ns". "nhiệt độ. khác" }

Sau khi tạo bộ sưu tập “another”, công cụ mongoDB sẽ tạo khóa mặc định trên trường “_id” của nó. Và “hệ thống. chỉ mục” hiển thị tất cả các khóa có trong cơ sở dữ liệu cho tất cả các bộ sưu tập mà nó có. Điều này có thể trở nên lộn xộn nếu chúng tôi có số lượng lớn các bộ sưu tập - điều mà chúng tôi thực hiện trong các dự án thậm chí còn lớn hơn một chút

Để lấy chỉ mục trên bộ sưu tập cá nhân

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
> db.another.getIndexes()
[
        {
                "v" : 1,
                "key" : {
                        "_id" : 1
                },
                "name" : "_id_",
                "ns" : "temp.another"
        }
]
 
> db.no.getIndexes()
[
        {
                "v" : 1,
                "key" : {
                        "_id" : 1
                },
                "name" : "_id_",
                "ns" : "temp.no"
        },
        {
                "v" : 1,
                "key" : {
                        "student_id" : 1
                },
                "name" : "student_id_1",
                "ns" : "temp.no"
        }
]

> db. khác. getIndexes() [ { "v". 1, "chìa khóa". { "_Tôi". 1 }, "tên". "_id_", "ns". "nhiệt độ. khác" } ] > db. không. getIndexes() [ { "v". 1, "chìa khóa". { "_Tôi". 1 }, "tên". "_id_", "ns". "nhiệt độ. no" }, { "v". 1, "chìa khóa". { "thẻ học sinh". 1 }, "tên". "sinh viên_id_1", "ns". "nhiệt độ. không" } ]

Chúng ta có thể sử dụng phương thức getIndex() để tìm nạp hoặc lấy các chỉ mục/khóa có trên từng bộ sưu tập

Xóa/xóa/xóa – chỉ mục/khóa

1
2
3
4
5
6
7
8
9
10
11
12
13
14
> db.no.dropIndex({"student_id": 1});
{ "nIndexesWas" : 2, "ok" : 1 }
 
> db.no.getIndexes()
[
        {
                "v" : 1,
                "key" : {
                        "_id" : 1
                },
                "name" : "_id_",
                "ns" : "temp.no"
        }
]

> db. không. dropIndex({"student_id". 1}); . 2, "được". 1 } > db. không. getIndexes() [ { "v". 1, "chìa khóa". { "_Tôi". 1 }, "tên". "_id_", "ns". "nhiệt độ. không" } ]

sử dụng phương thức dropIndex() và truyền vào đối tượng chỉ mục tương tự như đối tượng được sử dụng khi tạo chỉ mục. Điều này sẽ làm giảm chỉ số

Làm cách nào để xóa chỉ mục khỏi MongoDB?

Bắt đầu từ MongoDB 5. 2, bạn có thể sử dụng db. bộ sưu tập. dropIndex() để xóa các chỉ mục hiện có trên cùng một bộ sưu tập ngay cả khi có một bản dựng đang được tiến hành trên một chỉ mục khác.

Không thể xóa chỉ mục nào trong MongoDB?

Mặc định _id Chỉ mục . Chỉ mục _id ngăn khách hàng chèn hai tài liệu có cùng giá trị cho trường _id. Bạn không thể bỏ chỉ mục này vào trường _id.

Làm cách nào để xóa dữ liệu khỏi MongoDB?

Trình vỏ MongoDB cung cấp các phương thức sau để xóa tài liệu khỏi bộ sưu tập. .
Để xóa nhiều tài liệu, hãy sử dụng db. thu thập. xóaMany()
Để xóa một tài liệu, hãy sử dụng db. thu thập. xóaOne()

Làm cách nào để tìm các chỉ mục không sử dụng trong MongoDB?

Tìm các chỉ mục không sử dụng trong MongoDB .
db. thu thập. tổng hợp([{$indexStats. {}}, {$match. {"Tên". "<tên chỉ mục>"}}])
db. thu thập. tổng hợp([{$indexStats. {}}])
{ "Tên". "kiểm tra",.
db. thu thập. dropIndex( "<tên chỉ mục>")  . db. thu thập. dropIndex("{key1. 1