javascript - findOneAndUpdate Mongoose 函数中的字符串文字问题

标签 javascript node.js mongodb mongodb-query

类似本期https://stackoverflow.com/questions/11183480/how-to-set-key-by-var-in-mongoose-node-js#=我无法在 findOneAndUpdate 函数中获取字段变量。它将它作为文字字段。我尝试实现他们的解决方案,但没有成功。我没有收到错误,只是没有更新任何内容。

var cat = new Cat();

var field = (req.body[1].type);

Cat.findOneAndUpdate({ 'sid': req.sessionID }, {$push: {field: req.body[0]}}, {'upsert': true, 'new': true}, function (err, data){

最佳答案

您需要使用方括号[]表示法才能将对象属性的“键”设置为变量中的值:

var cat = new Cat();

// Just use it in the below assignment instead
//var field = (req.body[1].type);

var update = { "$push": { } };
update.$push[req.body[1].type] = req.body[0];

Cat.findOneAndUpdate(
    { 'sid': req.sessionID },
    update,                      // and reference in here
    {'upsert': true, 'new': true}, 
    function (err, data){

这就是如何在 JavaScript 中动态分配键。

关于javascript - findOneAndUpdate Mongoose 函数中的字符串文字问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33489377/

相关文章:

javascript - 使用 backbone.js 时键盘 TAB 导航中断

javascript - 在 Chrome 中分析 Javascript 时,我怎么知道我已经处理了内存泄漏?

javascript - 为什么我在 Node 的 HTTP 服务器上收到这么多连接事件?

mongodb - mongos之间的负载均衡

javascript - Mongoose 保存嵌套的对象数组 - Node.js

javascript - 外部 Javascript 文件无法正常工作,需要帮​​助

javascript - 在 javascript 中创建链接时,如何让搜索引擎识别该链接?

node.js - nvm 安装和 Chef-client 首次运行时出现问题

javascript - 从代码中设置的 env 变量在 Node.js 中的导入模块中不可用

javascript - MongoDB 可以打包在 Electron 应用程序中吗?