unicloud_id 在数据库中存储的是 ObjectId 格式,并不是 string 格式。

match 或者 where 的时候,能够以直接用字符串进行匹配,如下:

// 普通查询
db.collection('user')
        .where({
          _id: uid,
        }).get()
        
// 聚合查询
db.collection('user').aggregate()
        .match({
          _id: uid,
        }).end()

甚至在 lookup 函数中也可以直接写。

但是,要注意。如果你想要 project 进行处理时, _id又会重新返回到 ObjectId 格式。

也就是说,云开发中所有传入的 24 位字符串全部被认为 ObjectId 并且进行了自动转换

相比 mongdb 原生的许多方法, unicloud 和腾讯云开发却又没有跟进。