使用MongoDB 4.0.12。 Mongoose在后端使用NodeJS
我有一个数据表,其中显示了我们通过应用程序提供的recommendations
。
每个recommendation
都有一组与其自身相关的属性。像
我的数据表的每一列都有过滤器。
目前我知道
find
命令查询这些过滤器现在,我想根据接收recommendations
的{{1}}来过滤user
。
例如,我只想过滤recommendations
男性users
的男性$lookup
,这些男性已经激活了电子邮件并且在过去30天内一直活跃。
在网上阅读了很多书之后,看来我想做的事情比我现在使用的要困难得多。
据我了解,我必须将过滤器查询转换为汇总查询并使用ObjectId(...)
。
我曾经玩过它(不是很熟悉),但是遇到了让我不敢使用它的问题。像这样的东西:
$lookup
的字段时,如果对它进行查找,它将返回一个长度为1的数组,其中包含引用的文档。这意味着我必须手动将其从文档数组转换为自己的代码。这也意味着我的代码需要知道确切的模式。$lookup
也是另一个问题。现在,我需要在父localField
内放置一个管道,并将foreignField
和let
转换为$expr
,这意味着我必须在$lookup
中使用{子$unwind
,进一步增加了复杂性 mongoose
的工作原理以及如何在代码中确定何时使用它们主要问题是我的代码与模式无关,并且必须针对用户在数据表中确定的任何类型的过滤器生成查询。而且,由于管道形状对查询的嵌套级别非常敏感,因此使生成正确的查询成为我不确定自己能够管理的复杂任务。
我该如何最好地解决这个问题?
[sift.js][1]
填充字段,然后在代码中过滤它们(可能使用double
之类的库,这样我只需要处理一种查询语法)