var express = require('express'), mongoose = require('mongoose'); //引入mongoose模块 //连接mongodb数据库 nodejs为数据库名称 mongoose.connect('mongodb://localhost/nodejs'); //获取Schema 以及 ObjectId 对象 var Schema = mongoose.Schema, ObjectId = Schema.ObjectId; //创建一个评论Schema(结构&架构) 这里相当于mongodb中的collection(集合) var commentsShema = new Schema({ name:String, content:String }); //生成一个用于操作comments这个collection的Model对象 第一个参数为mongodb中的collection名称(需要先创建) var CommentModel = mongoose.model('comments', commentsShema); //新闻Schema var newsSchema = new Schema({ title : String, source : String, content : String, comments :{type:[commentsShema], default:[]} //新闻的评论,这里是一个子集合(collection),记得一定要用中括号包起来(type:[commentsShema]),默认为一个空数组(default:[]) }); //生成新闻的Model var NewsModel = mongoose.model('news', newsSchema); //新建一个新闻 var news = new NewsModel(); news.title = '国家税务总局:节假日加班工资须缴个税'; news.source = 'http://finance.qq.com/a/20120221/001221.htm'; news.content = '昨日,国税总局纳税服务司就纳税咨询热点问题作出解答....'; news.save(function(err){ console.log(err); }); //查询新闻 NewsModel.find({}, function(err,docs){ if(!err){ if(docs[0]){ //添加一条评论 var comment = new CommentModel(); comment.name = 'iblue'; comment.content = '测试评论!'; docs[0].comments.push(comment); NewsModel.update({_id:docs[0]._id}, {comments:docs[0].comments}, function(err){ console.log(err); }); } } });