资讯专栏INFORMATION COLUMN

Meteor的集合:Collections的使用

changfeng1050 / 2505人阅读

摘要:是什么是存储数据的方式,数据库使用的是。使用实现每一个对应中的一个表。的的特点在客户端和服务端使用相同的数据模型,一次定义之后两端使用,会完成剩下的数据同步的工作。

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

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

    

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

使用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...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/18776.html

相关文章

  • (翻译)Mantra官方文档

    摘要:我们通过对我们应用程序的每个部分进行单元测试来实现这一点,同时遵循一个标准。它帮助你单元测试,动作和集成容器。当在组件库中使用库函数时,它应该是纯函数。 Mantra 工作草案-版本0.2.0 简介 这是一个Mantra草案规范,一个由Kadira创建的Meteor的应用程序架构。 它帮助开发人员构建可维护的,面向未来的Meteor应用程序。 版权 The MIT License (M...

    denson 评论0 收藏0
  • Day 15:Meteor —— 从零开始创建一个 Web 应用

    摘要:在我的机子上,运行于端口,以避免和其他默认运行于端口的冲突。我们可以使用命令连接数据库查看定义应用层次创建的模板应用有一个问题,客户端和服务器段的代码是一样的。在中加入然后添加问题模板注意我们使用了来确保用户未登录的情况下应用。 编者注:我们发现了有趣的一系列文章《30天学习30种新技术》,正在翻译中,一天一篇更新,年终礼包。下面是第15天的内容。 到目前为止我们讨论了Bower...

    Big_fat_cat 评论0 收藏0
  • Day 15:Meteor —— 从零开始创建一个 Web 应用

    摘要:在我的机子上,运行于端口,以避免和其他默认运行于端口的冲突。我们可以使用命令连接数据库查看定义应用层次创建的模板应用有一个问题,客户端和服务器段的代码是一样的。在中加入然后添加问题模板注意我们使用了来确保用户未登录的情况下应用。 编者注:我们发现了有趣的一系列文章《30天学习30种新技术》,正在翻译中,一天一篇更新,年终礼包。下面是第15天的内容。 到目前为止我们讨论了Bower...

    lpjustdoit 评论0 收藏0
  • Meteor临时存储:Session

    摘要:在开发的过程中有的时候我们只需要存储一些临时的变量,我们并不想使用来存储,这个时候我们可以使用来存储,可以方便的存储一些状态,也可以在中使用。中存储的的值项目地址 在开发的过程中有的时候我们只需要存储一些临时的变量,我们并不想使用collection来存储,这个时候我们可以使用Session来存储,Session可以方便的存储一些状态,也可以在helpers中使用。 Session是变...

    Meils 评论0 收藏0
  • 翻译 Meteor React 制作 Todos - 03 - 集合

    摘要:数据存储集合是存储持久化数据的方式。中的集合比较特殊的是,它可以从服务端,包括客户端接收数据。它也可以自动的自我更新,因此一个视图组件受到一个集合的支持,他可以自动的展示最新的数据。 数据存储 集合(Collection)是Meteor存储持久化数据的方式。Meteor 中的集合比较特殊的是,它可以从服务端,包括客户端接收数据。这使得编写视图逻辑变得更加简单 -- 不用去写太多的服务端...

    Scott 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<