我如何访问mongodb文档的数组? (mongodb,nodejs)

时间:2018-01-19 01:19:15

标签: node.js mongodb

嗨我对mongodb有一些问题。

const mongoose = require('mongoose');

const companySchema = new mongoose.Schema({
  name: String,
  url: String,
  images: Array
});

const categoriesSchema = new mongoose.Schema({
  company: companySchema,
  name: String
});

module.exports = mongoose.model('categories', categoriesSchema);

以上代码是模型

    app.post('/addCompanyinfo', function (req, res){
        var news = new Categories();
        news.company[name]= req.body.company;  <--- here!
        news.save(function (err) {
            if(err) {
                console.error(err);
                res.json({result: 0});
                return;
            }
            res.json({result: 1})
        })
    })

这是路由器代码。我想访问 categoriesSchema-&GT;公司(companySchema) - &gt;名。

如何访问公司架构的“名称”??

将来你的帮助将是一个很大的幸运:)

2 个答案:

答案 0 :(得分:1)

您需要为Company创建一个对象来分配其属性

var news = new Categories();
var company = new Company();
news.company = company;

news.name = 'test category'  
company.name = 'test company';

console.log(company);

控制台日志

{ name: 'test category',
  company: { _id: 5a61629b74f8df0bd73142ba, images: [] },
  _id: 5a61629b74f8df0bd73142b9 }


{ name: 'test company', _id: 5a61629b74f8df0bd73142ba, images: [] }

答案 1 :(得分:0)

您可以以json格式发布数据,并在bodyParser.json()中使用app.js中间件,后端代码可以是:

router.post('/', function(req, res, next) {
  var news = new Categories(req.body); // create record directly with the json data
  console.log(req.body.company.name);  //just access it directly

  news.save(function (err) {
      if(err) {
          console.error(err);
          res.json({result: 0});
          return;
      }
      res.json({result: 1});
  });
});

和json格式可以是这样的:

{
  "company": {
      "name": "test company name",
      "url": "http://test.com",
      "image": []
  },
  "name": "test name"
}