阻止用户json查询mongodb

我在我的三个不同的用户集合中有三个职位我想在我的视图会议(Html,Css)部分取得职位但我需要过滤另外两个职位从另外两个用户发布,因为我有一些块function在我的查看部分。 所以所有的post都是允许的,但是我阻止了她/他的post对我和我来说都是不可见的。

BlockedByUser :(这是我的Post 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") } 

同上面Block用户二:

  { "_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") } 

这是我创build的Block Collection和两个用blockUserId key阻止的用户ID Block Details一个:

 { "_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 

Block Details两个

  { "_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”]

我在mongoose数据库中应用这个查询:

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

但它会返回未定义的值我试图只抓取我的职位或其他用户职位不阻止我,阻止用户职位将不会看到我

我必须实现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);