使用mongodbembedded集合
我刚开始使用mongodb和nodejs。 我知道mongodb不支持连接。我只是在mongodb中插入数据,我的文档看起来像:
{ "_id": ObjectId("564dacf84d52785c1d8b4567"), "content": "This blog created by karanSofat", "html": "<p>This blog created by karanSofat</p>\n", }
现在用户对这个post发表评论。 它应该是这样的:
{ "_id": ObjectId("564dacf84d52785c1d8b4567"), "comments": [ { "name": "sumit", "email": "sumit@ggi.net", "comment": "this is also well for me", "posted_at": ISODate("2015-11-19T11:06:27.172Z") } ], "content"▼: "This blog created by karanSofat", "html": "<p>This blog created by karanSofat</p>\n", }
这是我的模特,
//post model // grab the mongoose module var mongoose = require('mongoose'); // define our nerd model // module.exports allows us to pass this to other files when it is called module.exports = mongoose.model('post', { content : {type : String, default: ''}, html : {type : String, default: ''} }); //comment model var mongoose = require('mongoos module.exports = mongoose.model('comment', { name : {type : String, default: ''}, email : {type : String, default: ''}, comment : {type : String, default: ''}, posted_at : {type : date, default: ''} });
我的问题是,我不知道在哪个方式插入评论数据使用nodejs和我的文件将embedded。 这是我的代码:
app.post('/comments/:id', function(req, res) { var Comment = require("../app/models/comments");//comment Model var blog = require("../app/models/blog");//blog model var id = req.params.id; //postId var comments = JSON.parse(JSON.stringify(req.body)); //commentdata //code Should be here res.json({data:id,data2:input}); });
请帮忙
卡兰,
假设您有以下模式:
var Comments = new Schema({ name: String, email: String, comment: String, , posted_at: Date }); var BlogPost = new Schema({ content : String, html : String, comments : [Comments], }); mongoose.model('BlogPost', BlogPost);
您可以将embedded文档添加到数组中,如下所示:
// retrieve my model var BlogPost = mongoose.model('BlogPost'); // create a blog post var post = new BlogPost(); // create a comment post.comments.push({ "name": "sumit", "email": "sumit@ggi.net", "comment": "this is also well for me", "posted_at": ISODate("2015-11-19T11:06:27.172Z") }); post.save(function (err) { if (!err) console.log('Success!'); });