gpt4 book ai didi

javascript - 如何显式查询一个字段并得到所有可能的结果?蒙戈

转载 作者:行者123 更新时间:2023-11-30 12:24:47 25 4
gpt4 key购买 nike

如果您有这样的集合。

   user {
name: String,
email: String,
information: String
}

你会做类似的事情来获得所有 John 的有医生信息的列表。

db.user.find({name: "John", information: "doctor" });

现在,当具有可变输入时,这会使代码变得冗余。例如要过滤的字段排列。我正在尝试使我的查询通用,例如这个坏坏的例子。因此,我可能希望能够显式声明可以匹配任何值的字段。理论上,以下示例应该返回相同的文档。

例子:

非显式(正常)db.user.find({});

显式(奇怪)db.user.find({name: {$ANY}});

或者让它变得更复杂。

db.user.find({name: {$ANY}, information: "doctor"});

这行不通,但目的是获取所有医生的文档,但在 name 字段上具有任何类型的值,而不仅仅是 John 的。甚至可能是更复杂的东西。

db.user.find({name: function(){
if(req.query.name)//check if empty
{ return req.query.name; }
else { return $ANY; }
}, information: "doctor"});

这将足够通用,可以将单个查询实例用于动态请求行为。据我所知,还没有类似的实现。

提前谢谢你。

最佳答案

要获取所有属于医生但在 name 字段上具有 ANY 值的文档,您需要 $exists$ne您查询中的运算符,因为 $exists运算符匹配包含该字段的文档,包括字段值为 null 和 $ne 的文档运算符选择 name 字段不为 null 的文档:

db.user.find({"name": { "$exists": true, "$ne": null }, "information": "doctor"});

关于javascript - 如何显式查询一个字段并得到所有可能的结果?蒙戈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29790124/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com