javascript - 在 4.2 版以后的 nodejs 中执行字符串 MongoDb Query 的 db.eval() 的替代方法是什么?
问题描述
我正在寻找执行字符串 mongodb 查询的方法,例如:
var q = 'db.collection("restaurants").find({ "address.coord": { $lt: -95.754168 } })';
this.db.eval('function(){ return ' + q + '.toArray(); }', function(err, res){
console.log("the result is", res);
});o
我从官方MongoDb 文档中了解到,这曾经是可能的,但现在不是。
还有另一种方法可以实现这一目标吗?
我知道我可以将query condition
和存储projections
在变量中并将其作为动态实体传递。但是是否也可以一直动态地执行从数据库中获取的字符串查询?
我可以没有这种动态的性质吗?可能是,可能不是。但我想知道我所有的选择。
解决方案
但是是否也可以一直动态地执行从数据库中获取的字符串查询?
不。
服务器正朝着相反的方向发展,正在扩展 MQL 和聚合管道,增加额外的(结构化)功能。
eval 旨在替换为结构化查询选项,如聚合管道和 $expr。许多聚合管道阶段和运算符都支持变量。
如果聚合管道不够灵活,map/reduce 将继续作为最接近 eval 的直接替代方案保持可用。
推荐阅读
- asp.net - 在 asp.net 中使用 web 配置的 url 路由
- javascript - Javascript将循环中的数据值与if进行比较
- python - 如何编写同步和异步代码的类实例化形式?
- python - 在 tensorflow 中使用迭代器生成特征和标签
- python - 为什么我会在时间序列分析中得到如此奇怪的结果?
- python - 当我使用 python3 时出现 ModuleNotFoundError
- android - 是否可以通过 WebUSB 访问 android 配件?
- c# - 如何在 C# 中修复“不仅选定的项目进入集合”
- google-cloud-platform - Google Cloud Build 不会在 Github 推送时触发,手动触发时会构建旧提交
- android - 如何在 react-native 中从文档硬拷贝中检测和提取手写签名?