2017-08-14 69 views
1

我有三个帖子在我的三个不同的用户集合 我想在我的视图会话(Html,css)部分取回帖子 但我需要过滤另外两个帖子发布于其他两个用户 ,因为我的查看部分有一些功能块。因此,所有的岗位都是 允许的,但我已经阻止了她的用户/他的职位不可见的,我和我的他。被封锁的用户json查询mongodb

BlockedByUser:(这是我的帖子JSON数据)

{ 
"_id" : ObjectId("591729b52bb30a19afc9b89d"), 
"createdTime" : ISODate("2017-05-13T15:43:49.381Z"), 
"isDeleted" : false, 
"Message" : "Message Two", 
"postedBy" : ObjectId("598adbefb3bf0b85f92edc3b"), 
"recipient" : [ 
    ObjectId("598ae453b3bf0b85f92ee331"), 
    ObjectId("5910691ae2bcdeab80e875f0") 
], 
"updatedTime" : ISODate("2017-05-20T09:24:39.124Z") 
} 

下面两个用户发布的数据,我已经堵塞, 在他的受主阵列密钥存储我的接收者ID [598adbefb3bf0b85f92edc3b]

阻止用户之一:

{ 
"_id" : ObjectId("591729b52bb30a19afc9b89d"), 
"createdTime" : ISODate("2017-05-13T15:43:49.381Z"), 
"isDeleted" : false, 
"Message" : "Message One", 
"postedBy" : ObjectId("598ae453b3bf0b85f92ee331"), 
"recipient" : [ 
    ObjectId("598adbefb3bf0b85f92edc3b"), 
    ObjectId("5910691ae2bcdeab80e875f0"), 
    ObjectId("598ac93cb3bf0b85f92ece44"), 
], 
"updatedTime" : ISODate("2017-05-20T09:24:39.124Z") 
} 

同上 阻止用户二:

{ 
"_id" : ObjectId("591729b52bb30a19afc9b89d"), 
"createdTime" : ISODate("2017-05-13T15:43:49.381Z"), 
"isDeleted" : false, 
"Message" : "Message One", 
"postedBy" : ObjectId("598ac93cb3bf0b85f92ece44"), 
"recipient" : [ 
    ObjectId("598adbefb3bf0b85f92edc3b"), 
    ObjectId("5910691ae2bcdeab80e875f0"), 
    ObjectId("598ae453b3bf0b85f92ee331") 
], 
"updatedTime" : ISODate("2017-05-20T09:24:39.124Z") 
} 

这是我创造和两个封闭用户ID与块收集blockUserId关键 座细则:

{ 
"_id" : ObjectId("598da2f0b88b0c2b0c735234"), 
"blockUserId" : ObjectId("598ae453b3bf0b85f92ee331"), 
"blockById" : ObjectId("598adbefb3bf0b85f92edc3b"), 
"updatedDate" : ISODate("2017-08-11T12:28:32.145Z"), 
"createdDate" : ISODate("2017-08-11T12:28:32.145Z"), 
"isBlock" : "true", 
"__v" : 0 

块细则双

{ 
"_id" : ObjectId("598da558b88b0c2b0c735236"), 
"blockUserId" : ObjectId("598ac93cb3bf0b85f92ece44"), 
"blockById" : ObjectId("598adbefb3bf0b85f92edc3b"), 
"updatedDate" : ISODate("2017-08-11T12:38:48.772Z"), 
"createdDate" : ISODate("2017-08-11T12:38:48.772Z"), 
"isBlock" : "true", 
"__v" : 0 
    } 

我有获取这些封锁集合和存储两个用户blockUserId ID在阵列 arrOne = [ “598ae453b3bf0b85f92ee331”, “598ac93cb3bf0b85f92ece44”]

,我将这个查询中猫鼬分贝:

query = {$or: [{$and: [{ $or: [{ postedBy: req.params.id}, 
              {recipient: req.params.id} 
              ] 
            }, { createdTime: { $gt: endTime, $lt: startTime } } 
            ]},{postedBy: {$ne: arrOne}} 
           ] 
          }; 

       } 

但它会返回 我想只取回我的职务或不阻止我我其他用户张贴,并阻止用户张贴意志不定值不可见的,我

回答

0

我要实现where子句和它的作品

var query = { $and: [{ $or: [{ postedBy: req.params.id }, { recipient: req.params.id }] }, { "createdTime": { $gt: endTime, "$lt": startTime } }] }; 

CollectionName.find(query).where('postedBy').nin(blocklist).exec(function(err, response);