你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

$toObjectId

适用对象: MongoDB vCore

运算符 $toObject 将指定的字符串值转换为 ObjectId。

语法

运算符的 $toObject 语法为:

{ "$toObject": <expression> }

参数

参数 DESCRIPTION
expression 要转换为 ObjectId 的指定字符串值

例子

示例 1:将_id字段中的前 24 个字母数字字符转换为 ObjectId 值

此查询会删除所有“-”字符,并从_id字段中提取前24个字符,将结果转换为ObjectId。 ObjectId 运算符必须严格是长度为 24 且只包含字母数字字符的字符串。

db.stores.aggregate([
{
    "$match": {
        "_id": "b0107631-9370-4acd-aafa-8ac3511e623d"
    }
},
{
    "$project": {
        "idAsObjectId": {
            "$toObjectId": {
                "$substr": [
                    {
                        "$replaceAll": {
                            "input": "$_id",
                            "find": "-",
                            "replacement": ""
                        }
                    }, 0, 24]
            }
        }
    }
}])

这会导致生成以下输出:

{
    "_id": "b0107631-9370-4acd-aafa-8ac3511e623d",
    "idAsObjectId": "ObjectId('b010763193704acdaafa8ac3')"
}