Sie möchten query.observe()
für diese. Angenommen, Sie haben eine Posts
Sammlung mit einem Tag-Feld und möchten benachrichtigt werden, wenn ein Beitrag mit dem Tag important
hinzugefügt wird.
http://docs.meteor.com/#observe
// collection of posts that includes array of tags
var Posts = new Meteor.Collection('posts');
// DB cursor to find all posts with 'important' in the tags array.
var cursor = Posts.find({tags: 'important'});
// watch the cursor for changes
var handle = cursor.observe({
added: function (post) { ... }, // run when post is added
changed: function (post) { ... } // run when post is changed
removed: function (post) { ... } // run when post is removed
});
Sie können auf dem Client diesen Code ausführen, wenn Sie etwas in jedem Browser, wenn ein Beitrag Änderungen machen wollen. Oder Sie können dies auf dem Server ausführen, wenn Sie eine E-Mail an das Team senden möchten, wenn ein wichtiger Beitrag hinzugefügt wird.
Beachten Sie, dass sich added
und removed
auf die Abfrage beziehen, nicht auf das Dokument. Wenn Sie ein vorhandenes Dokument Post haben, und führen Sie
Posts.update(my_post_id, {$addToSet: {tags: 'important'}});
dies den ‚hinzugefügt‘ Rückruf auslösen, da die Post an das Abfrageergebnis hinzugefügt zu werden.
Eine Sache, die ich nicht getestet habe, ist, ob Inserts in MongoDB-Sammlungen * außerhalb * von Meteor an Clients weitergegeben werden. – fadedbee
Ich habe den Code überflogen, aber ich kann die Zeile nicht sehen, in der Meteor von MongoDB über Aktualisierungen von Sammlungen informiert wird. – fadedbee
@chrisdew Ich habe gerade einen Datensatz direkt in MongoDB eingefügt und er erschien im Browser. Also ich denke der Server wird benachrichtigt. –