是否可以执行以下查询:
db.artigo.find( { _id : ObjectId('520a504a3004bc615fcfcf16') } )
但是在ObjectId上使用正则表达式?
例如,获取上面那个位置上包含“ 004”的_ids。
PS。原因是要基于某些字段(即_id)实现矮人服务。我正在尝试创建一个隐式的“ shorty”服务,而不是一个显式的(为该目的而生成的字段)服务。
ObjectId不是字符串,而是MongoDB中的特殊类型。您不能使用正则表达式运算符来查询包含ObjectId的字段。
_id不必是ObjectId,所以我建议您提供自己的唯一字符串作为_id,然后可以使用正则表达式来查询表达式。
例子:
let userId = 'bf44fa';
const result = await Users.aggregate([
{
$addFields: {
tempUserId: { $toString: '$_id' },
}
},
{
$match: {
tempUserId: { $regex: userId, $options: "i" }
}
}
]).exec();
现在,我们可以通过_id来查找最后6位数字,也可以通过使用汇总作为您希望的6位开始。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句