我有嵌入式文档更新的问题.

我定义的方案:

var Talk = new Schema({
      title:{type: String,required: true},content: {type: String,date: { type: Date,comments: { type: [Comments],required: false},Vote: { type: [VoteOptions],});

   var VoteOptions = new Schema({
    option: {type: String,required: true },count: {type: Number,required: false }
   });

现在我想更新Vote.count,给定的Talk ID和VoteOption id.我有以下功能来完成这项工作:

function makeVote(req,res){

    Talk.findOne(req.params.id,function(err,talk) {
        for (var i=0; i <talk.Vote.length; i++){
           if (talk.Vote[i]._id == req.body.Vote){
                talk.Vote[i].count++;

           }
        }
              talk.save(function(err){
              if (err) {
                req.flash('error','Error: ' + err);
                    res.send('false');
               }
               else
               {
                    res.send('true');
               }
                 });
      });
}

一切执行,我得到res.send(‘true’),但是count的值不会改变.

当我做了一些console.log我看到它改变了价值,但talk.save不保存在db.

另外我很不高兴的循环只是找到_id的嵌入式文档.在mongoose文档中,我阅读了关于talk.Vote.id(my_id),但这给我没有id功能的错误.

解决方法

当更新混合类型(这似乎不是基本类型,也包括嵌入式文档)时,必须在文档上调用.markModified.在这种情况下,它将是:
talk.markModified("Vote"); // mention that `talk.Vote` has been modified

talk.save(function(err) {
    // ...
});

希望这能帮助未来的人,因为我找不到答案很快.

Reference:

… Mongoose loses the ability to auto detect/save those changes. To “tell” Mongoose that the value of a Mixed type has changed,call the .markModified(path) method of the document passing the path to the Mixed type you just changed.

javascript – Mongoose嵌入式文档更新的更多相关文章

  1. ios – 伞框架

    错误.应用程序,通常位于…错误仍然存在你也可以在这里添加(子)框架的路径.

  2. ios – 在设备上构建和运行时,仅将嵌入式框架与其他动态框架链接失败

    TL;博士将您的嵌入式框架与其他框架链接,并且不将其他框架与您的应用程序链接,导致Build&在设备上运行.描述:建立:我的设置非常简单(Swift2.3&XcodeXcode8.0;Build版本8S162m):>使用Carthage(0.17.2)我用xcodebuild8.0和TOOLCHAINS=com.apple.dt.toolchain.Swift_2_3carthagebui

  3. iOS 8嵌入式框架中的头文件

    我正在尝试创建一个用于iOS8的嵌入式框架.在创建一个名为SampleKit(BTW;这里有任何约定,我应该使用前缀吗?)之后,它包含一个令我困惑的头文件:我知道FOUNDATION_EXPORT是extern或extern“C”的宏,但我不确定这两个常量.我应该在哪里为他们设定价值?解决方法项目>构建设置>版本控制>当前项目版本:

  4. xcode – 将嵌入式框架导入监视扩展

    我很确定我错过了一些基本的东西,但似乎无法弄清楚.解决方法我无法在任何地方找到实际记录,但如果您看看Apple的“Lister”projectforWatchOS,似乎您必须为watchOSSDK建立一个单独的框架,以将该框架包含在watchOS2.0扩展中,并包含任何在iOS和watchOS框架目标中共享代码.

  5. ios – 为嵌入式二进制签名证书始终签署“特殊代码”

    这是苹果全球开发者关系认证机构,如果我选择永远信任,Xcode档案失败.当我更改为系统默认值时,Xcode成功归档.血腥的

  6. mongoose更新对象的两种方法示例比较

    最近在使用mongoose的时候发现了一个之前一直没注意的知识点,下面这篇文章主要给大家介绍了关于mongoose更新对象的两种方法,通过示例代码将两种方法进行详细的对比,以给大家更好的参考学习,需要的朋友可以参考下。

  7. Mongoose经常返回e11000 error的原因分析

    这篇文章主要给大家分析了Mongoose经常返回e11000 error的原因,文中介绍的非常详细,对大家具有一定的参考价值,需要的朋友可以们下面来一起看看吧。

  8. Node.js中使用mongoose操作mongodb数据库的方法

    如何利用mongoose将数据写入mongodb数据库呢?操作方法很简单,下面小编给大家分享Node.js中使用mongoose操作mongodb数据库的方法,感兴趣的朋友一起看看吧

  9. node.js使用mongoose操作数据库实现购物车的增、删、改、查功能示例

    这篇文章主要介绍了node.js使用mongoose操作数据库实现购物车的增、删、改、查功能,结合实例形式详细分析了node.js使用mongoose框架操作MongoDB数据实现购物车增删改查相关技巧与使用注意事项,需要的朋友可以参考下

  10. 关于在mongoose中填充外键的方法详解

    在学习非关系型数据库mongoDB,希望能够完成数据库的CRUD,采用的是JS做的后台,因此用到了mongoose,下面这篇文章主要给大家介绍了关于在mongoose中填充外键的相关资料,文中介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。

随机推荐

  1. js中‘!.’是什么意思

  2. Vue如何指定不编译的文件夹和favicon.ico

    这篇文章主要介绍了Vue如何指定不编译的文件夹和favicon.ico,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  3. 基于JavaScript编写一个图片转PDF转换器

    本文为大家介绍了一个简单的 JavaScript 项目,可以将图片转换为 PDF 文件。你可以从本地选择任何一张图片,只需点击一下即可将其转换为 PDF 文件,感兴趣的可以动手尝试一下

  4. jquery点赞功能实现代码 点个赞吧!

    点赞功能很多地方都会出现,如何实现爱心点赞功能,这篇文章主要为大家详细介绍了jquery点赞功能实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  5. AngularJs上传前预览图片的实例代码

    使用AngularJs进行开发,在项目中,经常会遇到上传图片后,需在一旁预览图片内容,怎么实现这样的功能呢?今天小编给大家分享AugularJs上传前预览图片的实现代码,需要的朋友参考下吧

  6. JavaScript面向对象编程入门教程

    这篇文章主要介绍了JavaScript面向对象编程的相关概念,例如类、对象、属性、方法等面向对象的术语,并以实例讲解各种术语的使用,非常好的一篇面向对象入门教程,其它语言也可以参考哦

  7. jQuery中的通配符选择器使用总结

    通配符在控制input标签时相当好用,这里简单进行了jQuery中的通配符选择器使用总结,需要的朋友可以参考下

  8. javascript 动态调整图片尺寸实现代码

    在自己的网站上更新文章时一个比较常见的问题是:文章插图太宽,使整个网页都变形了。如果对每个插图都先进行缩放再插入的话,太麻烦了。

  9. jquery ajaxfileupload异步上传插件

    这篇文章主要为大家详细介绍了jquery ajaxfileupload异步上传插件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  10. React学习之受控组件与数据共享实例分析

    这篇文章主要介绍了React学习之受控组件与数据共享,结合实例形式分析了React受控组件与组件间数据共享相关原理与使用技巧,需要的朋友可以参考下

返回
顶部