node.js - MongoDB - 连接模型中的两个属性并用结果更新模型

标签 node.js mongodb express mongoose mongodb-query

我试图在这个模型中连接两个东西。

router.post('/', (req, res) => {
let file= new File({
    name: req.body.name,
    year: req.body.year,
    code: req.body.code
});
file.save().then(data => {
    res.send(data);
}, err => {
    res.send(err);
})});

所以我想做的是我想从用户那里获取姓名和年份的输入,一旦发布请求通过,我想获取 name+'_'+ MongoDB 对象 ID 的最后六个字符并更新结果的模型和补丁代码。我怎样才能有效地实现这一目标?任何帮助,将不胜感激。谢谢!

示例文档

{ "_id": { "$oid": "5aa420c2f92b4d77fc342e62" }, "name": "n", "year": "1992", "code": "", "__v": 0 }

上述文档中字段“代码”的示例输出。

"code": "n_342e62"

代码应在发布请求后通过连接这两个属性自行更新。

最佳答案

我不明白为什么您只希望在post 请求完成后才 执行此操作。但这里是你如何做到的:

router.post('/', (req, res) => {
let file= new File({
    name: req.body.name,
    year: req.body.year,
    code: req.body.code
});
file.save().then(data => {
    res.send(data);

    //after the DATA has been sent, you can save the code
    let id = data._id.toString();
    data.code = data.name + "_" + id.slice(id.length - 6, id.length);
    data.save();
}, err => {
    res.send(err);
})});

(另外,请说明您是要使用name 还是year 作为代码)。

关于node.js - MongoDB - 连接模型中的两个属性并用结果更新模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49227204/

相关文章:

javascript - 合并逻辑并增加总和

mongodb - 如何在 Windows 7 上设置 mongo db dbpath?

c# - C# 中的 MongoDB FilterDefinition 和接口(interface)

javascript - 如何在文档数组中搜索字符串数组

node.js - 使用 Nodejs 实时抓取聊天记录

node.js - 在 Node.js 中,如果一个新的请求到达并且事件循环已经在忙于处理一个请求,会发生什么?

javascript - Node Express Res 发送文件

apache - 让 Apache 允许通过 HTTPS 访问 Express API

node.js - 如何从 Express 中的 http 请求中获取未解析的查询字符串

mongodb - 在 MongoDB 中展开查找操作的结果时丢失记录