angularjs - 使用 mongodb 嵌入集合

标签 angularjs node.js mongodb mongoose mean-stack

我刚刚开始使用 mongodb 和 nodejs。我知道 mongodb 不支持连接。我只需将数据插入 mongodb 中,我的文档看起来如下:

{
   "_id": ObjectId("564dacf84d52785c1d8b4567"),
    "content": "This blog created by karanSofat",
   "html": "<p>This blog created by karanSofat</p>\n",
} 

现在用户对此帖子发表评论。应该是这样的:

{
   "_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 以哪种方式插入评论数据,并且我的文档将嵌入。 这是我的代码:

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);

您可以将嵌入文档添加到数组中,如下所示:

// 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!');
});

关于angularjs - 使用 mongodb 嵌入集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33840679/

相关文章:

node.js - Socket.io 未从客户端发送到服务器

node.js - compoundjs 中的问题 "Adapter is not define'

javascript - 获取 Angular ui 路由器 $location.search() 以使用基本 URL 参数

javascript - Angular 表单提交不检查表单验证

javascript - Angular js 表单输入中的 $isEmpty 功能

javascript - 如何使用 node-postgres 将多行正确插入 PG?

node.js - create-react-app 说 "Create React App requires Node 14 or higher."修复 Node 给出 "npm does not support Node.js v10.19.0"

mongodb - 我可以根据 IP 地址对 Mongo 进行分片吗?

javascript - Route.get() 需要回调函数,但修改服务器路由后得到一个 [object Undefined]

angularjs - Google Analytics 中的 UI 路由器状态变化跟踪