仅当另一个字段值是给定的字符串时,才查找具有某个字段值的文档

时间:2019-04-22 14:40:25

标签: mongodb eloquent mongodb-query jenssegers-mongodb

我正在使用此php包进行查询-https://github.com/jenssegers/laravel-mongodb

情况是,其中有两个字段user_idpost_status。我想检索该集合中的所有文档,但是当post_status字段值为draft时,仅当user_id是给定的字符串时才应检索该文档。这个想法是,只有登录的用户才能在其他帖子中找到他们的草稿帖子。

我很难找到解决该问题的方法。该应用仍未投入生产。如果我应该以其他不同方式存储数据,那也是一种选择。

1 个答案:

答案 0 :(得分:0)

  

仅当另一个字段值是给定的字符串时,才查找具有某个字段值的文档

您所构架的问题只是转换为a并查询,我们如何看待它

  
    

当另一个字段值是给定的字符串时

  

这意味着您有一些结果集,当user_id与某些字符串匹配时,您需要过滤掉。即some result sets and user_id = <id>

  
    

现在考虑句子Find documents with a certain field value的第一部分

  

这意味着您正在使用一些值"status" = "draft"过滤记录,无论结果如何,都希望再次基于user_id = <id>

进行过滤

所以最后您将得到以下查询:

db.collectionName.find({"status":"draft", "user_id": "5c618615903aaa496d129d90"})

希望此说明对您有所帮助,或者您可以重新表达您的问题,我将尝试通过ans进行修改。