【问题标题】:Meteor .find() from Collection returns [object Object]来自 Collection 的 Meteor .find() 返回 [object Object]
【发布时间】:2015-02-15 14:50:23
【问题描述】:

在 Ubuntu 上运行

Data.js

//Collections
Database = new Meteor.Collection('data');

if (Meteor.isClient) {
  Template.main.data = function () {
    var c = Database.find();
    return c;
  };
}

if (Meteor.isServer) {
  Meteor.startup(function () {
    // code to run on server at startup
  });
}

data.html

<head>
  <title>data</title>
</head>

<body>
  {{> main}}
</body>

<template name="main">
  {{data}}
</template>

我使用 mongo 插入数据库:

> db.Database.insert({title: 'ShouldWork'});
> db.Database.find();
{ "_id" : ObjectId("5296403855ee6e1350b35afb"), "title" : "ShouldWork" }

然而,当我运行该站点时,它只返回 [object Object]..

应该有自动发布并且不安全, 这已经成为我学习框架的一大障碍。

【问题讨论】:

    标签: mongodb object collections find meteor


    【解决方案1】:

    这是意料之中的。这是因为.find() 的结果总是一个游标并且有多个对象。 你必须决定你想要哪一个,或者是否要循环遍历每一个。

    1) 你想使用一个结果:

     var c = Database.findOne();
    

    或 2) 你想遍历每一个:

    {{#each data}}
        {{title}}
    {{/each}}
    

    另外一定要使用{{data}} 的属性,因为{{data}},即使findOne 仍然是[Object object]。您应该使用 {{data.title}} 之类的东西,具体取决于您要使用的属性。

    【讨论】:

    • 现在什么都没有显示:S
    • 想通了,由于某种原因 mongo db 实际上并没有添加到集合中:/
    【解决方案2】:

    如何从 html 访问 Mongo DB 中的数据?

    首先,您需要将 Mongo 数据库实例存在于全局变量中,即它必须在任何 .js 文件中声明,如下所示。 它不是客户端或服务器代码的一部分

    假设我们在其中一个 js 文件中创建了一个事件集合。

        EventList = new Mongo.Collection('Events');
    

    现在,为了从 HTML 访问所有对象,我们需要一个 .js 文件中客户端内部的帮助函数。下面是使用的 Helper:-

    Template.viewEvent.helpers  ({ 
        //NOTE : 'event' is the name of variable from html template
        'event' : function () {
             //returns list of Objects for all Events
             return EventList.find().fetch();
         }
        'users' : function () {
             //returns reference to Document for all users
             return UserList.find().fetch();
         }
    
    });
    

    只剩下在.html上显示内容:-

    说 EventList 集合具有字段 Event_Name、Event_Date。下面是html模板代码

    <template name="viewEvent">
       <h2>View Event</h2>
       <!-- Iterate on all Objects fetched by the Helper Class-->
       {{#each event}}
          {{Event_Name}} : {{Event_Date}} 
       {{/each}}
    

    【讨论】:

      猜你喜欢
      • 2019-07-28
      • 1970-01-01
      • 2016-11-02
      • 1970-01-01
      • 1970-01-01
      • 2013-09-13
      • 2015-01-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多