Ste*_*eve 6 mongoose mongodb node.js express
我从我的网站客户端向后端 Node.js 服务器发送 API 请求,并通过 ID 查找特定文档,如下所示:
var ObjectID = require('mongodb').ObjectID;
db.collection('users').find({"_id": new ObjectID(req.body._id)})
Run Code Online (Sandbox Code Playgroud)
其中req.body._id等于整个 ID 字符串,例如'5d0381ad681a2a3aa1dc5872'
但是我更愿意只发送字符串的INC(不断增加的值)部分作为参数:'c5872'
我应该如何仅根据 INC 值查找特定文档?(我假设 INC 是独一无二的)
任何帮助是极大的赞赏。
您可以在字符串中使用临时转换 _id 以便能够使用正则表达式:
db.users.aggregate([
{
$addFields: { id: { $toString: '$_id' } }
},
{
$match: { id: /c5872$/ }
}
])
Run Code Online (Sandbox Code Playgroud)
更简洁的解决方案是直接使用子字符串创建字段,以避免使用正则表达式:
db.users.aggregate([
{
$addFields: { id: { $substr: [{ $toString: '$_id' }, 19, 24] } }
},
{
$match: { id: 'c5872' }
}
])
Run Code Online (Sandbox Code Playgroud)
https://docs.mongodb.com/manual/reference/operator/aggregation/addFields/ https://docs.mongodb.com/manual/reference/operator/aggregation/substr/
| 归档时间: |
|
| 查看次数: |
140 次 |
| 最近记录: |