cursor.returnKey()

在本页面

Definition

修改光标以返回索引键而不是文档。

cursor.returnKey()的格式如下:

cursor.returnKey()
Returns: returnKey()附加到的cursor具有修改后的结果集。这允许链接其他光标修饰符。

Behavior

如果查询不使用索引执行读取操作,则游标将返回空文档。

Example

restaurants集合包含具有以下架构的文档:

{
   "_id" : ObjectId("564f3a35b385149fc7e3fab9"),
   "address" : {
      "building" : "2780",
      "coord" : [
         -73.98241999999999,
         40.579505
      ],
      "street" : "Stillwell Avenue",
      "zipcode" : "11224"
   },
   "borough" : "Brooklyn",
   "cuisine" : "American ",
   "grades" : [
      {
         "date" : ISODate("2014-06-10T00:00:00Z"),
         "grade" : "A",
         "score" : 5
      },
      {
         "date" : ISODate("2013-06-05T00:00:00Z"),
         "grade" : "A",
         "score" : 7
      }
   ],
   "name" : "Riviera Caterer",
   "restaurant_id" : "40356018"
}

除默认的_id索引外,该集合还有两个索引:

{
   "v" : 1,
   "key" : {
      "_id" : 1
   },
   "name" : "_id_",
   "ns" : "guidebook.restaurant"
},
{
   "v" : 1,
   "key" : {
      "cuisine" : 1
   },
   "name" : "cuisine_1",
   "ns" : "guidebook.restaurant"
},
{
   "v" : 1,
   "key" : {
      "_fts" : "text",
      "_ftsx" : 1
   },
   "name" : "name_text",
   "ns" : "guidebook.restaurant",
   "weights" : {
      "name" : 1
   },
   "default_language" : "english",
   "language_override" : "language",
   "textIndexVersion" : 3
}

以下代码使用cursor.returnKey()方法仅返回用于执行查询的索引字段:

var csr = db.restaurant.find( { "cuisine" : "Japanese" } )
csr.returnKey()

这将返回以下内容:

{ "cuisine" : "Japanese" }
{ "cuisine" : "Japanese" }
{ "cuisine" : "Japanese" }
{ "cuisine" : "Japanese" }
...
首页