Computer >> Máy Tính >  >> Lập trình >> MongoDB

Lập chỉ mục nhiều khóa trên toàn bộ mảng với MongoDB?

Trước tiên, hãy để chúng tôi tạo một bộ sưu tập với các tài liệu -

> db.demo277.insertOne({"details":[{"FirstName":"John"}]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e48fb21dd099650a5401a52")
}
> db.demo277.insertOne({"details":[{"FirstName":"David"}]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e48fb27dd099650a5401a53")
}
> db.demo277.insertOne({"details":[{"FirstName":"Chris"}]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e48fb2bdd099650a5401a54")
}

Hiển thị tất cả các tài liệu từ một bộ sưu tập với sự trợ giúp của phương thức find () -

> db.demo277.find();

Điều này sẽ tạo ra kết quả sau -

{ "_id" : ObjectId("5e48fb21dd099650a5401a52"), "details" : [ { "FirstName" : "John" } ] }
{ "_id" : ObjectId("5e48fb27dd099650a5401a53"), "details" : [ { "FirstName" : "David" } ] }
{ "_id" : ObjectId("5e48fb2bdd099650a5401a54"), "details" : [ { "FirstName" : "Chris" } ] }

Sau đây là truy vấn để triển khai lập chỉ mục nhiều khóa trên toàn bộ một mảng. Nó quét toàn bộ tài liệu -

> db.demo277.find({"details":{FirstName:"David"}});

Điều này sẽ tạo ra kết quả sau -

{ "_id" : ObjectId("5e48fb27dd099650a5401a53"), "details" : [ { "FirstName" : "David" } ] }