【问题标题】:Embed the collections using mongodb使用 mongodb 嵌入集合
【发布时间】:2016-02-23 18:24:31
【问题描述】:

我刚开始使用 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 以哪种方式插入 cmets 数据并且我的文档将嵌入。 这是我的代码:

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

请帮忙

【问题讨论】:

  • 你在用猫鼬吗?还是 mongodb 模块?
  • @inspired:我在用猫鼬...
  • 请发布../app/models/comments../app/models/blog 的架构。
  • @启发:我更新我的问题...
  • @inspired:我解决了这个问题...

标签: angularjs node.js mongodb mongoose mean-stack


【解决方案1】:

卡兰,

假设您有以下架构:

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

【讨论】:

  • 在我的例子中,有很多帖子和用户评论这些帖子。我想将 cmets 与帖子联系起来。
猜你喜欢
  • 2013-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-12
  • 1970-01-01
相关资源
最近更新 更多