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

Mongoose / mongodb có quyền truy cập vào các tham chiếu đối tượng trong lược đồ trong quá trình tổng hợp không?

không có cách nào để truy cập đối tượng Dữ liệu được tham chiếu trong Quy trình tổng hợp, công việc xung quanh tôi đã làm cho dự án của mình là thêm một tham chiếu đến chủ sở hữu trong các lược đồ được đề cập.

User = new Schema({
    places:[{type: Schema.Types.ObjectId, ref:'Place'}],
    shouts:[{type: Schema.Types.ObjectId, ref:'Shout'}]
});
Place = new Schema({
    owner:{type: Schema.Types.ObjectId, ref:'Place'},
    name:String,
    description:String,
});
Shout = new Schema({
    owner:{type: Schema.Types.ObjectId, ref:'Place'},
    content:String,
});

Và sau đó được sử dụng để Tổng hợp trực tiếp trên tài liệu phụ để có được những người dùng duy nhất sở hữu các phiên bản của địa điểm, bằng cách này, tôi có thể nhận được kết quả phù hợp với truy vấn và địa điểm.

Ví dụ:

module.exports.askForShoutInPlace = function(req, res){
var pname = new RegExp(req.params.pname, 'i'); 
var stringQ = new RegExp(req.paramos.qcontent, 'i');
Place.aggregate(
    [
       //find Places that match criteria
       {'$match':{'name':pname}},
       //select owner id object to result
       {'$project':{ owner:'$owner'}},
       //group those results to single array with unique ids of users
       {'$group':{_id:'$owner'}}
    ]).exec(function(err, results){
    //find user shouts that match string and belong to owners know to be owners of a place
    Shout.find({'content':stringQ}).where({'owner':{'$in':results}}).exec(function(err, shouts){
       res.send(shouts);
    });
});

}

đây chỉ là cách tôi tìm thấy để giải quyết các nhu cầu cụ thể của mình, tôi hy vọng nó có thể giúp ích cho ai đó.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongoose findOneAndUpdate và upert trả về không có lỗi, không có tài liệu nào bị ảnh hưởng

  2. Sự cố khi cài đặt mongodb bằng Homebrew

  3. Làm cách nào để di chuyển dữ liệu từ MongoDB sang SQL-Server?

  4. MongoDb:Làm cách nào để nhập dữ liệu kết xuất từ ​​tệp .gz?

  5. Làm cách nào để sử dụng cursor.forEach () trong MongoDB bằng Node.js?