MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Meteor.js - cách thực hiện tìm kiếm của người dùng trên nhiều bộ sưu tập

OK, tôi đã tìm ra cách để thực hiện việc này mà không cần thực hiện lại toàn bộ cơ sở dữ liệu của mình. Bravo Meteor!

trên máy chủ:

Meteor.publish('search_results', function(query){
    if(query){
        var self = this;
        var actors = Actors.find({ $or : [{ name : query}, { actor_biography : query }] ),
        films = Films.find({ $or : [{ name : query}, { actor_biography : query }] ),
        cinemas = Cinemas.find({ $or : [{ name : query}, { actor_biography : query }] );
        actors.forEach(function(doc){
            self.added('search_collection', doc._id, { name : doc.name, type : 'actor' });
        });
        films.forEach(function(doc){
            self.added('search_collection', doc._id, { name : doc.name, type : 'film' });
        });
        cinemas.forEach(function(doc){
            self.added('search_collection', doc._id, { name : doc.name, type : 'cinema' });         
        this.ready();
    } else {
        this.ready();
    }
});

và trên máy khách:

Deps.autorun(function(){
    Meteor.subscribe('search_results', Session.get('currentQuery'));
});

SearchCollection = new Meteor.Collection('search_collection');

Giờ đây, SearchCollection chứa dữ liệu tôi muốn từ kết quả, nơi tôi có thể quyết định dữ liệu nào tôi muốn từ từng bộ sưu tập riêng biệt.

Một điều bất lợi là tôi đang sao chép dữ liệu rõ ràng - một số nếu không phải tất cả các bản ghi này đều đã tồn tại trên máy khách ...




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Triển khai gắn thẻ đơn giản với MongoDB

  2. Spring JPA PostgreSQL + MongoDB

  3. Sử dụng $ strLenCP với Spring Data MongoDB

  4. Làm cách nào để thực hiện các bài kiểm tra junit sử dụng mongoDB được nhúng trong ứng dụng springboot?

  5. Thêm một số loại số hàng vào lệnh / đường ống tổng hợp mongodb