साझा क्षेत्र में:
function getSearchUsers(query) {
var re = new RegExp(query, "i");
return Users.find({name: {$regex: re}});
}
function getFriendUsers() {
return Users.find({friend: true}); // or however you want this to work
}
सर्वर पर:
Meteor.publish("searchUsers", getSearchUsers);
Meteor.publish("friendUsers", getFriendUsers);
क्लाइंट पर:
Template.search.onCreated(function () {
var self = this;
self.autorun(function () {
self.subscribe("searchUsers", Session.get("searchQuery"));
});
});
Template.friends.onCreated(function () {
this.subscribe("friendUsers");
});
Template.search.helpers({
searchResults: function () {
return getSearchUsers(Session.get("searchQuery"));
}
});
Template.friends.helpers({
results: function () {
return getFriendUsers();
}
});
इसका मुख्य निष्कर्ष यह है कि जब डेटा तार पर स्थानांतरित हो रहा है तो पर्दे के पीछे क्या होता है यह स्पष्ट नहीं है। उल्का गठबंधन प्रतीत होता है रिकॉर्ड जो सर्वर पर विभिन्न प्रश्नों में मेल खाते थे और इसे क्लाइंट को भेजते हैं। फिर यह क्लाइंट पर निर्भर करता है कि वह उसी क्वेरी को फिर से अलग-अलग करके चलाए।
उदाहरण के लिए, मान लें कि आपके पास सर्वर-साइड संग्रह में 20 रिकॉर्ड हैं। फिर आपके पास दो प्रकाशन हैं:पहला 5 रिकॉर्ड से मेल खाता है, दूसरा 6 से मेल खाता है, जिसमें से 2 समान हैं। उल्का नीचे 9 रिकॉर्ड भेजेगा। क्लाइंट पर, आप फिर वही क्वेरी चलाते हैं जो आपने सर्वर पर की थीं और आपको क्रमशः 5 और 6 रिकॉर्ड के साथ समाप्त होना चाहिए।