MongoDB如何為陣列編制索引?


MongoDB對陣列的每個值進行索引,以便你可以查詢單個元素。

為了理解這個概念,我們用文件建立一個集合。建立帶有文件的集合的查詢如下所示 -

> db.indexingForArrayElementDemo.insertOne({"StudentFavouriteSubject":["MongoDB","MySQL"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c8acdca6cea1f28b7aa0816")
}

藉助 find() 方法顯示集合中的所有文件。查詢如下所示 -

> db.indexingForArrayElementDemo.find().pretty();

以下是輸出 -

{
   "_id" : ObjectId("5c8acdca6cea1f28b7aa0816"),
   "StudentFavouriteSubject" : [
      "MongoDB",
      "MySQL"
   ]
}

以下是 MongoDB 索引陣列 - 的查詢

> db.indexingForArrayElementDemo.ensureIndex({"StudentFavouriteSubject":1});

以下是輸出 -

{
   "createdCollectionAutomatically" : false,
   "numIndexesBefore" : 1,
   "numIndexesAfter" : 2,
   "ok" : 1
}

以下是單個數組元素的查詢 -

> db.indexingForArrayElementDemo.find({"StudentFavouriteSubject":"MongoDB"}).pretty();

以下是輸出 -

{
   "_id" : ObjectId("5c8acdca6cea1f28b7aa0816"),
   "StudentFavouriteSubject" : [
      "MongoDB",
      "MySQL"
   ]
}

我們再看另一個例子。查詢如下所示 -

> db.indexingForArrayElementDemo.find({"StudentFavouriteSubject":"MySQL"}).pretty();

以下是輸出 -

{
   "_id" : ObjectId("5c8acdca6cea1f28b7aa0816"),
   "StudentFavouriteSubject" : [
      "MongoDB",
      "MySQL"
   ]
}

更新日期: 30-Jul-2019

134 瀏覽量

開啟你的 職業

完成課程獲得認證

立即開始
廣告
© . All rights reserved.