当前位置:  开发笔记 > 编程语言 > 正文

Mongoose/MongoDB - 保存记录以覆盖当前数据:

如何解决《Mongoose/MongoDB-保存记录以覆盖当前数据:》经验,为你挑选了1个好方法。

所以我在DB中有一个基本上是博客文章的对象,其中有一个ObjectID数组,引用了Categories集合.

所以

Posts = {
   title: String,
   Content: String,
   Categories: [{
       type: ObjectID,
       ref: 'Categories'
   }]

我可以创建帖子很好,当我尝试更新它时出现问题:

post.title = 'hi';
post.content = 'content';
post.categories = ['44523452525','4e1342413421342'];

post.save(function(){});

出于某种原因,它将添加这两个类别,而不是擦除类别数组并插入它们.

如何删除它们并插入新的?



1> mpobrien..:

我试图重现这种行为,但我不能 - 这是我运行的代码示例:

var mongoose = require('mongoose')
var Schema = mongoose.Schema

mongoose.connect('mongodb://localhost/testjs');

PostSchema = new Schema({
  title:String,
  content:String,
  cats:[]
});
var Post = mongoose.model('Post', PostSchema);

var mypost = new Post()
mypost.title = "x"
mypost.content = "y"
mypost.cats = ['a','b','c']
mypost.save(
  function(err){
    mypost.cats = ['d','e']
    mypost.save()
  }
);

在第二次调用save()之后,数组只包含它所设置的内容("d","e").你可以尝试一下,看看你是否得到了相同的结果?也许它与猫鼬版本或其他东西有关.

推荐阅读
oDavid_仔o_880
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有