博客文章:Mongoose使用案例–让JSON数据直接入库MongoDB
发布于 2年前 作者 bsspirit 3259 次浏览

为什么用Nodejs?为什么用MongoDB?从领域语言和代码简洁之道来看,这是我非常关心的问题。

Nodejs基于Javascript,MongoDB脚本同样也是基于Javascript。而且他们的数据存储格式都是JSON,这就是为什么要把他们放在一起的原因了。如果程序前后端能直接处理JSON,我想数据处理过程又可以极大的减化了,代码量又将低少1/5。多么的兴奋啊!让我们来动手验证一下想法吧。

![enter image description here][1] [1]: http://blog.fens.me/wp-content/uploads/2013/05/nodejs2.png

文章目录

  1. 配置Mongoose
  2. 创建目录及文件
  3. 插入数据
  4. POST提交JSON增加一条记录
  5. 查询数据,取出刚增加的记录

文章正文: http://blog.fens.me/nodejs-mongoose-json/

程序代码已经上传到github有需要的同学,自行下载。 https://github.com/bsspirit/nodejs-demo

8 回复

你想说明什么? mongo本来就可以保存对象啊,什么叫让json直接入库

以自定义类型的数据结构,进行数据传输,从而减少转型带来的不必要的开销。

比如像例子中使用的电影数据结构。 mongodb schema设计好后,前后端传一套JSON的对象,用一套js的api,完成CRUD的操作。 比起原来操作,界面表单提交,后台获得参数,再解析到DB存储,省了中间一步。

注:对于组织这段话,我可能说的不是太清楚。 等我把应用上线了,再诠释出来吧。

楼主你好.我了你blog中关于介绍直接入库的方法 我想知道如何批量 保存了?
比如你定义了

var Schema = mongodb.mongoose.Schema;

    var MovieSchema = new Schema({
    name : String,
    alias : [String],
    publish : Date,
    create_date : { type: Date, default: Date.now},
    images :{
    coverSmall:String,
    coverBig:String,
    },
    source :[{
    source:String,
    link:String,
    swfLink:String,
    quality:String,
    version:String,
    lang:String,
    subtitle:String,
    create_date : { type: Date, default: Date.now }
    }]
    });
    var Movie = mongodb.mongoose.model("Movie", MovieSchema);
    var MovieDAO = function(){};
    module.exports = new MovieDAO();

MovieSchema 然后你用

   MovieDAO.prototype.save = function(obj, callback) {
  var instance = new Movie(obj);
  instance.save(function(err){
    callback(err);
  });
};

这样的话 传入一个 MovieSchema是插入数据正常的 如果插入的是MovieSchema[]这样的一组的话 数据就插入异常 这个问题困惑我很长时间了

mongoose似乎没有batch save的方法。

如果你是array,就自己做个循环插入吧。

@bsspirit 哦 这样我就理解了。。哈哈 我只是感觉每次都去进行一次save好傻的。。

mongo 自带数据导入的。这个就没必要单独拿出来说了吧。。

不能批量save可以找其他方法呀。

例如model.js的 create方法皆可以批量处理数据的嘛

@echo2600 具体是怎么用了?我查了下始终没找对方法

回到顶部