Meteor的集合:Collections的使用

Collections是什么

Collections是Meteor存储数据的方式,数据库使用的是MongoDB
Collections允许访问客户端和服务端,会自动更新,当Collections发生改变的时候,所有使用Collections的组件都会被更新。使用Collections不需要编写大量的服务器代码就可以方便的更新页面逻辑。
客户端调用Collections和服务器调用Collections基本一致。
Collections使用MongoDB实现,每一个Collections对应MongoDB中的一个表。

创建一个Collections

创建Collections很简单,直接new一个Colletcion即可:

Languages=new Mongo.Collection('languages');

这样就可以使用find()查询数据了,使用Collections查询数据的客户端代码:

    if (Meteor.isClient) {
      Template.meteor_collection.helpers({
        languages:Languages.find()
      });
    }

在模板中显示查询到的数据:

    <template name="meteor_collection">
      {{#each languages}}
          <h3>{{name}}</h3>
      {{/each}}
    </template>

因为还没有插入数据,所以这个使用页面中并没有数据可以显示,下面插入一些数据。

使用MongoDB插入数据

进入项目目录中,确保你的MongoDB服务在运行中,如果没有运行,可以启动Mongo服务,也可以启动项目,启动项目时会自动启动MongoDB服务。
然后运行命令:

meteor mongo

    ongoDB shell version: 2.6.7
    connecting to: 127.0.0.1:3001/meteor
    meteor:PRIMARY>

show tables;

并没有看到数据显示,下面插入一条数据:

db.languages.insert({name:'nodejs',created_time:new Date()})

再来看下:

show tables;

    languages
    system.indexes

多了两个表 一个是languages一个是索引表
在页面里面就可以看到一条数据。

在server端添加数据

上面的查询是在客户端使用Collections,下面演示下在服务器端使用Collections的方法,在Meteor启动的时候判断如果数据小于2条就新加一条数据。

    if (Meteor.isServer) {
      Meteor.startup(function () {
        if(Languages.find().count()==1){
            Languages.insert({name:"css",created_time:new Date()});
        }
      });
    }

这样就在服务器端添加了一条数据,直接就可以在客户端查看到数据变化。
MeteorCollections的特点:在客户端和服务端使用相同的数据模型,一次定义之后两端使用,Meteor会完成剩下的数据同步的工作。

项目地址:https://github.com/jjz/meteor...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值