订阅 Meteor.Users 集合

2023-11-26

// in server.js
Meteor.publish("directory", function () {
return Meteor.users.find({}, {fields: {emails: 1, profile: 1}});
});

// in client.js
Meteor.subscribe("directory");

我现在想获取从客户端查询的目录列表,例如directory.findOne()从浏览器的控制台。 //测试目的

Doing directory=Meteor.subscribe('directory')/directory=Meteor.Collection('directory')并表演directory.findOne()不起作用,但当我这样做时directory=new Meteor.Collection('directory')它工作并返回未定义,我打赌它在服务器上创建了一个我不喜欢的 mongo 集合,因为 USER 集合已经存在并且它指向一个新的集合而不是 USER 集合。

注意:我不想弄乱 Meteor.users 集合如何处理其功能...我只想使用不同的句柄从中检索一些特定数据,该句柄仅返回指定的字段而不覆盖其默认功能。 。

Ex:

Meteor.users.findOne() // will return the currentLoggedIn users data
directory.findOne() // will return different fields taken from Meteor.users collection. 

如果您希望此设置起作用,您需要执行以下操作:

Meteor.publish('thisNameDoesNotMatter', function () {
  var self = this;
  var handle = Meteor.users.find({}, {
    fields: {emails: 1, profile: 1}
  }).observeChanges({
    added: function (id, fields) {
      self.added('thisNameMatters', id, fields);
    },
    changed: function (id, fields) {
      self.changed('thisNameMatters', id, fields);
    },
    removed: function (id) {
      self.removed('thisNameMatters', id);
    }
  });

  self.ready();

  self.onStop(function () {
    handle.stop();
  });

});

在客户端不需要定义一个仅限客户端的集合:

directories = new Meteor.Collection('thisNameMatters');

并订阅对应的数据集:

Meteor.subscribe('thisNameDoesNotMatter');

现在应该可以了。如果您认为这个解释不够清楚,请告诉我。

EDIT

在这里,self.added/changed/removed方法或多或少充当事件调度程序。简而言之,他们向每一位致电的客户提供指示

Meteor.subscribe('thisNameDoesNotMatter');

关于应该应用于名为的客户端集合的更新thisNameMatters假设这个集合存在。作为第一个参数传递的名称几乎可以任意选择,但如果客户端没有相应的集合,所有更新都将被忽略。请注意,此集合只能是客户端的,因此它不一定必须与数据库中的“真实”集合相对应。

从您的返回光标publish方法它只是上面代码的快捷方式,唯一的区别是使用实际集合的名称而不是我们的theNameMatters。这种机制实际上允许您根据需要创建任意数量的数据集“镜像”。在某些情况下这可能非常有用。唯一的问题是这些“集合”将是只读的(顺便说一句,这完全有意义),因为如果它们没有在服务器上定义,则相应的“插入/更新/删除”方法不存在。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

订阅 Meteor.Users 集合 的相关文章

  • 无法在 mongodb 中创建角色

    我正在尝试在 mongodb 中创建一个新角色 但它给了我错误 gt use Admin switched to db Admin gt db createRole role executeFunctions privileges reso
  • 使用 Mongoid 将整个模型设为只读

    我看到 Mongoid 支持只读属性 有没有办法将整个文档或整个集合 模型类标记为只读 您可以访问fields类属性并将哈希的键映射到attr readonly 例如 class Model include Mongoid Document
  • 如何使用@Query在日期之间选择Spring数据MongoDB

    我将 Spring 数据与 MongoDB 一起使用 我需要查找实际日期和提前 7 天之间的数据 我已经使用 Query 注释创建了存储库 并且不喜欢使用 Criteria 类 您知道如何在 Query 之间使用吗 提前致谢 您可以尝试以下
  • 无法连接到 mongodb 错误:无法连接到服务器 127.0.0.1:27017 at src/mongo/shell/mongo.js:L112

    当我尝试连接到 mongo db 时 我总是收到如下错误 MongoDB shell 版本 2 4 3 连接到 测试 4 月 26 日星期五 14 31 46 941 JavaScript 执行失败 错误 无法连接到服务器 127 0 0
  • MongoDB 聚合计数太慢

    我有大约 6 万个文档users集合 并有以下查询 db getCollection users aggregate match userType employer lookup from companies localField id f
  • 如何统计MONGODB中所有唯一值? [复制]

    这个问题在这里已经有答案了 date 2017 09 04 description DD from my employer1 amount 1000 33 date 2017 09 06 description DD from my emp
  • 返回游标数组不显示任何结果

    我试图通过这样做来解决两个集合的 连接 foundUsers function var searchUser Session get searchUser user search criteria var usf User find sea
  • NodeJS、Mongoose:如何使用 mongoose 获取相关数据

    我有 2 个集合 它们是一对多的关系 如何使用猫鼬获取相关数据作为嵌套文档 我有 2 个模式 它们是这样相关的 var userSchema mongoose Schema name String age Number var postSc
  • Ember-data和MongoDB,如何处理_id

    我正在将 ember data 与 Rails 和 MongoDB 一起使用 并且在 MongoDB 中的 id 字段中存储 ID 的方式遇到问题 Ember data 将使用 id 作为 ID 的默认字段 所以我尝试像这样覆盖它 App
  • 为什么 mongo 的状态会抛出异常(code = exited,status = 48)?

    我在使用 mongo 时遇到了极其缓慢的情况 早些时候 当我输入 sudo systemctl status mongodb mongo 时 我出现在线并且呈绿色 现在几天后他开始抛弃我 mongodb service High perfo
  • 如何获取从中提取数据的服务器的服务器地址

    我知道我们使用cursor getServerAddress 在Java 驱动程序中拥有它 但是 我在 C 中找不到任何相关的调用 不幸的是 在深入研究 C 驱动程序源代码 以及 Java 源代码以了解它在做什么 之后 用作获取一部分的实际
  • 在mongo聚合中选择* group by

    我正在尝试做一些我认为很简单的事情 假设我在 mongo 中有一系列具有公共键和可变数量属性的记录 我想选择记录中的所有属性并按名称分组 例如 Name George x 5 y 3 Name George z 9 Name Rob x 1
  • 如何使用官方 MongoDB C# 驱动程序将 BsonDocument 转换为强类型对象?

    出于单元测试的目的 我想测试我的类映射 而无需在 MongoDB 数据库中读取和写入文档 为了处理特殊情况 例如循环父 子引用和只读属性 我使用了BsoncClassMap RegisterClassMap lt MyType gt 一些自
  • 如何使用 pollingThrottle 和 pollingInterval?

    所以我的应用程序中有一些东西我不需要立即反应并找到有关属性的信息轮询节流阀 and 轮询间隔在文档中 所以这里基本上是我设法找到的有关这些属性的所有信息 pollingIntervalMs 数 仅限服务器 在服务器上观察时轮询此查询的频率
  • 使用 mongodb-reactive 的反应式 Spring boot 应用程序中的多租户

    我们如何使用 Mongodb reactive 存储库在 spring webflux 中创建多租户应用程序 我在网上找不到任何有关反应式应用程序的完整资源 所有可用资源均适用于非反应式应用程序 UPDATE 在非响应式应用程序中 我们过去
  • 流星与承诺

    我一直在尝试养成使用 Promise 的习惯 但在尝试在 Meteor 上下文中的服务器端代码中使用它们时遇到了问题 这就是问题 if Meteor isServer Meteor startup function code to run
  • MongoDB db.collection.count() 与 db.collection.find().length()

    我想了解为什么这些命令在从mongos针对相同 MongoDB 集合的实例 返回不同的数字 db users count db users find length 原因是什么 这可能是潜在问题的征兆吗 我相信你的收藏已经被碎片化了 大多数分
  • mongodb对话系统

    我正在实施一个verymongodb 上的简单对话系统 这个想法应该是 当我打开一个 convo 时 它应该显示发送和接收的消息 到目前为止一切正常 并且应该非常容易 通过使用像这样的伪代码这样的简单查询 from my id AND to
  • node-mongodb-native MongoClient 意外关闭连接

    我一直在 mongodb 中搜索大量意外关闭的连接 但只能找到希望关闭连接的人提出的问题 我正在使用 node mongodb native 连接到数据库 但我不断收到看似随机的 错误 连接已关闭 消息 如果我手动重试请求 浏览器刷新 则请
  • 有没有办法从 webstorm (mac) 运行 mongod

    在这个线程中 从 webstorm 运行 mongod exe https stackoverflow com questions 21068248 running mongod exe from webstorm 它指出 mongo4id

随机推荐