如何过滤模式类型的猫鼬数组

时间:2018-08-26 14:25:55

标签: node.js mongodb mongoose

我有两个Mongoose集合“ File”和“ FileShare”。架构详细信息如下

var FileSchema = new mongoose.Schema({
name: { type: String},
shares: [ { type: Schema.Types.ObjectId, ref: "FileShare" } ]});


var FileShareSchema = new mongoose.Schema({
_id: Number,
user: { type: String }});

用于文件收集的样本数据

name                    shares   
================================
 Document1.txt          [1,2]
 Document2.txt          [1]
 Document3.txt          [2]
 Document4.txt          []

用于FileShare收集的样本数据

_id     user
========================
1       John
2       Raj

我想编写一个查询来获取与用户共享的列表文件。并且还需要使用查询来处理分页。

扩展结果

  

对于John来说,用户应该获得Document1.txt,Document2.txt
  并且用户Raj应该获得Document1.txt,Document3.txt

File.find({})
    .populate('FileShare')
    .sort({'_id': 1})   
    .skip(0).limit(25)
    .exec(function (err, files) {
        res.send(files);
    });

请告诉我,有什么方法可以使用猫鼬查询来获得此结果。

0 个答案:

没有答案