2017-08-14 65 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);