【问题标题】:Mongoose eager loading?猫鼬渴望加载?
【发布时间】:2013-12-20 22:06:13
【问题描述】:

我有一个关于返回 mongodb 文档的问题。 我在我的 node.js 服务器配置中使用以下调用:

app.get('/ruimtes/:afkortingCampus', function (req, res) {
  Ruimtes.find({'campusAfkorting': req.params.afkortingCampus}, function (err, docs) {
    res.json(docs);
  })
});

我正在使用以下架构:

var RuimteSchema = new mongoose.Schema({
campusAfkorting: String,
verdieping: Number,
naam: String,
type: String,
omschrijving: String,
oppervlakte: Number,
x: Number,
y: Number,
breedte: Number,
hoogte: Number,
capaciteit: Number,
openingsuren: String,
beamer: {
    aanwezig: String,
    type: String,
    datumLamp: String
},
"acties": [
    {
        "id": Number,
        "datumAanmaak": String,
        "type": String,
        "omschrijving": String,
        "prioriteit": String,
        "datumUitvoering": String,
        "opgelost": String,
        "kostprijs": Number
    }
]
}, { collection: 'Ruimtes'})

我在 AngularJS 中处理返回的数据,并使用 ng-repeat 将其输出到表格中: 当我使用batarang检查范围时,它显示“beamer”和“acties”是空的(“beamer:[object Object]”)。

我需要其中的数据(aanwezig、type 和 datumLamp)显示在我的应用程序上。

我做错了什么或如何启用某种急切加载? 提前致谢!

【问题讨论】:

  • 在您的调试控制台中尝试查看 acties[0] 和 beamer[0] 的值
  • 输出:$scope.ruimtes[0].beamer[0] ==> "[" 并且对于 "acties":$scope.ruimtes[0].acties[0] ==> " [对象对象]"
  • 您确定数据已正确存储在您的数据库中吗?
  • 我认为是,这是我的 mongoDB 中的一个文档示例:oi41.tinypic.com/1q0mqw.jpg 我是否需要在我的模式中为“beamer:{...”和“acties”指定类型: [..." 例如 "acties": array [..." ?

标签: node.js angularjs express mongoose


【解决方案1】:

我发现你必须为嵌入式数组定义一个模式并且不允许使用双重名称:

var ActieSchema = new mongoose.Schema({
  "id": Number,
  "datumAanmaak": String,
  "type": String,
  "omschrijving": String,
  "prioriteit": String,
  "datumUitvoering": String,
  "opgelost": String,
  "kostprijs": Number
 })

var RuimteSchema = new mongoose.Schema({
  campusAfkorting: String,
  verdieping: Number,
  naam: String,
  type: String,
  omschrijving: String,
  oppervlakte: Number,
  x: Number,
  y: Number,
  breedte: Number,
  hoogte: Number,
  openingsuren: String,
  beamer: { aanwezig: String, typeBeamer: String, datumLamp: String},
  "acties": [ActieSchema]
}, { collection: 'Ruimtes'})

【讨论】:

    猜你喜欢
    • 2013-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-25
    • 2015-09-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多