mat*_*tus 25 mongodb mongodb-query aggregation-framework
是否有一个我可以在聚合函数中使用的运算符来获取字符串而不是ObjectId作为响应?
db.something.aggregate([ {$match: {'property': {$exists:true}} }, {$project: {stringId: '$_id.???'}}])
Run Code Online (Sandbox Code Playgroud)
Ash*_*shh 23
Mongodb 4.0引入了$toString聚合运算符.那么,现在您可以轻松地将ObjectId转换为字符串
db.collection.aggregate([
{
$project: {
_id: {
$toString: "$_id"
}
}
}
])
Run Code Online (Sandbox Code Playgroud)
反之亦然使用$toObjectId聚合
db.collection.aggregate([
{
$project: {
_id: {
$toObjectId: "$_id"
}
}
}
])
Run Code Online (Sandbox Code Playgroud)
小智 9
聚合函数中没有Direct Operator来从ObjectId获取String.
版本2.6之后您可以使用ObjectId.toString()方法将ObjectId转换为字符串.首先匹配并投影您的ObjectID.然后,您可以使用将此对象ID转换为字符串ObjectID.toString().
db.something.aggregate([{"$match":{'property': {$exists:true}}},{"$project":{"_id":1}}])
Run Code Online (Sandbox Code Playgroud)
然后使用生成的Object并使用获取字符串作为响应 ObjectID.tostring()
编辑:您可以使用访问对象ID的str属性
ObjectId("507f191e810c19729de860ea").strRun Code Online (Sandbox Code Playgroud)
来源:mongodb docs
| 归档时间: |
|
| 查看次数: |
19770 次 |
| 最近记录: |