cursor.returnKey()

On this page本页内容

Definition定义

cursor.returnKey()

mongo Shell Method

This page documents the mongo shell method, and does not refer to the MongoDB Node.js driver (or any other driver) method. 本页记录了mongo shell方法,未提及MongoDB Node.js驱动程序(或任何其他驱动程序)方法。For corresponding MongoDB driver API, refer to your specific MongoDB driver documentation instead.有关相应的MongoDB驱动程序API,请参阅特定的MongoDB驱动程序文档。

Tip

Starting in MongoDB 4.4, $meta supports the keyword "indexKey" to return index key metadata if an index is used. 从MongoDB 4.4开始,$meta支持关键字"indexKey",以便在使用索引时返回索引键元数据。The use of { $meta: "indexKey" } is preferred over cursor.returnKey().cursor.returnKey()相比,更倾向于使用{ $meta: "indexKey" }

Modifies the cursor to return index keys rather than the documents.修改游标以返回索引键而不是文档。

The cursor.returnKey() has the following form:cursor.returnKey()具有以下形式:

cursor.returnKey()
Returns:返回:The cursor that returnKey() is attached to with a modified result set. returnKey()所附着的游标带有修改后的结果集。This allows for additional cursor modifiers to be chained.这允许链接其他游标修改器。

Behavior行为

If the query does not use an index to perform the read operation, the cursor returns empty documents.如果查询不使用索引来执行读取操作,游标将返回空文档。

Example示例

The restaurants collection contains documents with the following schema: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"
}

The collection has two indexes in addition to the default _id index:除了默认的_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
}

The following code uses the cursor.returnKey() method to return only the indexed fields used for executing the query:以下代码使用cursor.returnKey()方法仅返回用于执行查询的索引字段:

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

This returns the following:这将返回以下内容:

{ "cuisine" : "Japanese" }
{ "cuisine" : "Japanese" }
{ "cuisine" : "Japanese" }
{ "cuisine" : "Japanese" }
...