$meta

在本页面

$meta projection operator 为每个匹配的文档返回与查询关联的元数据(e.g. "textScore")。

$meta表达式具有以下语法:

{ $meta: <metaDataKeyword> }

$meta表达式可以将以下关键字指定为<metaDataKeyword>

关键词描述排序
"textScore"返回与每个匹配文档的相应$text查询关联的分数。文本分数表示文档与搜索词或术语的匹配程度。如果不与$text查询一起使用,则返回 0 分。降序

行为

$meta表达式可以是投影文档的一部分,也可以是sort()表达式:

{ <projectedFieldName>: { $meta: "textScore" } }

意见上的db.collection.find()操作不支持$meta projection operator。

Projected Field Name

<projectedFieldName>不能在 name 中包含点(.)。

如果匹配的文档中已存在指定的<projectedFieldName>,则在结果集中,现有字段将返回_11值而不是存储的值。

投影

$meta表达式可以在投影文档中使用,如:

db.collection.find(
   <query>,
   { score: { $meta: "textScore" } }
)

$meta表达式指定将字段包含到结果集中,并且不指定排除其他字段。

$meta表达式可以是投影文档的一部分,该文档指定其他字段的排除或指定其他字段的包含。

元数据返回有关<query>操作的处理的信息。因此,分配给<projectedFieldName>的返回元数据在<query>表达式中没有意义; i.e。如果的一部分在<projectedFieldName>上指定条件,则类似于在 non-existing 字段中指定条件,如果<projectedFieldName>文档中不存在任何字段。

分类

$meta表达式可以是sort()表达式的一部分,如:

db.collection.find(
   <query>,
   { score: { $meta: "textScore" } }
).sort( { score: { $meta: "textScore" } } )

要在sort()表达式中包含$meta表达式,必须在投影文档中显示相同的$meta表达式,包括<projectedFieldName>。指定的元数据确定 sort order。例如,"textScore"元数据按降序 order 排序。

有关其他示例,请参阅使用其他查询和排序表达式进行文本搜索

例子

有关"textScore"投影和排序的示例,请参阅$text

Updated at: 9 months ago
$elemMatch(投影)Table of content$slice(投影)