cursor.returnKey()
On this page本页内容
Definition定义
cursor.returnKey()
- Important
mongosh Method
This page documents a
mongosh
method. This is not the documentation for a language-specific driver, such as Node.js.For MongoDB API drivers, refer to the language-specific MongoDB driver documentation.
TipStarting in MongoDB 4.4,从MongoDB 4.4开始,$meta
supports the keyword"indexKey"
to return index key metadata if an index is used.$meta
支持键"indexKey"
,以在使用索引的情况下返回索引键元数据。The use of使用{ $meta: "indexKey" }
is preferred overcursor.returnKey()
.{ $meta: "indexKey" }
比使用cursor.returnKey()
更可取。Modifies the cursor to return index keys rather than the documents.修改游标以返回索引键而不是文档。Thecursor.returnKey()
has the following form:cursor.returnKey()
具有以下形式:cursor.returnKey()
Returns:返回值:The cursor thatreturnKey()
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" }
...