【问题标题】:blocked user Json Query for mongodbmongodb 被阻止的用户 Json 查询
【发布时间】:2017-08-14 15:29:21
【问题描述】:

我的三个不同用户的集合中有三个帖子 我正在尝试在我的 Views Session (Html, Css) 部分中获取帖子 但我需要过滤其他两个用户发布的其他两个帖子 因为我的视图部分中有一些块功能。所以所有帖子都是 允许,但我阻止了她/他的帖子的用户对我和我的他不可见。

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

这是我创建的块集合和两个带有 blockUserId 键的被阻止用户 ID 区块详情一:

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

我正在 mongoose db 中应用此查询:

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

                }

但它会返回未定义的值 我正在尝试仅获取我的帖子或未阻止我的其他用户帖子,并且我将看不到被阻止的用户帖子

【问题讨论】:

    标签: json node.js mongodb


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2019-08-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多