Sử dụng dot notation để chỉ định đường dẫn đến trường lồng nhau khi tạo index. Tạo collection:
> db.createIndexOnNestedFieldDemo.insertOne(
{ "UserDetails": { "UserPersonalDetails": { "UserFirstName": "John", "UserLastName": "Smith" } } }
);
{ "acknowledged": true, "insertedId": ObjectId("5ce929c778f00858fb12e916") }
> db.createIndexOnNestedFieldDemo.insertOne(
{ "UserDetails": { "UserPersonalDetails": { "UserFirstName": "Chris", "UserLastName": "Brown" } } }
);
{ "acknowledged": true, "insertedId": ObjectId("5ce929d678f00858fb12e917") }
> db.createIndexOnNestedFieldDemo.insertOne(
{ "UserDetails": { "UserPersonalDetails": { "UserFirstName": "David", "UserLastName": "Miller" } } }
);
{ "acknowledged": true, "insertedId": ObjectId("5ce929e378f00858fb12e918") }
Hiển thị document:
> db.createIndexOnNestedFieldDemo.find().pretty();
Kết quả:
{
"_id": ObjectId("5ce929c778f00858fb12e916"),
"UserDetails": { "UserPersonalDetails": { "UserFirstName": "John", "UserLastName": "Smith" } }
}
{
"_id": ObjectId("5ce929d678f00858fb12e917"),
"UserDetails": { "UserPersonalDetails": { "UserFirstName": "Chris", "UserLastName": "Brown" } }
}
{
"_id": ObjectId("5ce929e378f00858fb12e918"),
"UserDetails": { "UserPersonalDetails": { "UserFirstName": "David", "UserLastName": "Miller" } }
}
Tạo index trên trường lồng nhau UserDetails.UserPersonalDetails.UserLastName:
> db.createIndexOnNestedFieldDemo.createIndex({ "UserDetails.UserPersonalDetails.UserLastName": 1 });
Kết quả:
{
"createdCollectionAutomatically": false,
"numIndexesBefore": 1,
"numIndexesAfter": 2,
"ok": 1
}