当前位置: 首页 > 面试题库 >

MongoDB和Node.js中的动态查询

景品
2023-03-14
问题内容

我正在与后端的Mongodb一起开发nodejs /
express应用程序。在我的一个API调用中,根据是否存在特定的querystring参数,我想使用$ gt或$ lt向Mongodb发出查询。

在某些情况下,我们想要的所有内容都比tokenId使用$ lt少,但在其他情况下,我们希望所有的内容都比tokenId使用$
lt大。我们如何做到这一点而不重复查询?

这是一个示例查询:

collection.find({'film_id': {$in : genre}, '_id': {$lt: tokenId}}).sort({'_id': -1}).limit(25).toArray(function(error, films)

有没有一种方法可以动态创建查询而无需实际执行2个不同的查询?


问题答案:

以编程方式建立查询对象:

var query = {'film_id': {$in : genre}};
if (param) {
    query._id = {$lt: tokenId};
} else {
    query._id = {$gt: tokenId};
}
collection.find(query).sort({'_id': -1}).limit(25).toArray(function(error, films);

更新资料

现在,Node.js 4+支持计算的属性名称,您可以query一步创建:

var query = {
    film_id: {$in: genre},
    _id: {[param ? '$lt' : '$gt']: tokenId}
};


 类似资料:
  • 我正在尝试创建一个简单的Spring项目,餐厅可以在共享数据库中添加菜单项,用户可以使用html表单根据一系列标准搜索菜肴,尤其是饮食要求 表格示例: 示例SQL命令 然后,符合他们标准的菜肴列表将返回给用户。 表单中的任何字段都可以留空,不勾选框(例如,“素食主义者”并不意味着条件应设置为“假”,而是不包括在查询中)。因此,处理该问题的最佳方法似乎是使用JpaSpecificationExecu

  • 我使用的是Spring boot 1.4.x分支和Spring Data MongoDB。 当我启动应用程序时,我会出现以下错误: 你知道吗?

  • 问题内容: 我有一个使用mongodb本机驱动程序的node.js应用程序。在使用节点v8.9.1将应用程序代码迁移到异步/等待的过程中,我努力寻找一种适合mongodb查询的好方法。mongodb驱动程序的主要问题是,所有查询都使用回调,其中对异步方法来说,promise函数是必需的。 备择方案: 猫鼬 -承诺不赞成使用查询,它会强制使用Schema模型,这对我的应用程序来说有点开销。 mong

  • 我在这里找到了一个解决方案:如何使用ApacheCamel和MongoDB创建动态equals查询? 但这看起来需要做很多工作。难道Camel没有更简单的方法将值传递给MongoDB查询吗?我希望我们能传递Mongo使用的实际find({})语言。 以下是我的工作,一些日志显示了它在做什么:

  • 主要内容:创建数据库,创建连接,创建集合,创建集合,数据库操作( CURD ),插入一条数据,插入多条数据,find(),查询指定条件的数据,更新一条数据,更新多条数据,删除一条数据,删除多条数据,排序,limit():读取两条数据,skip(): 跳过前面两条数据,读取两条数据,$lookup 实现左连接,drop(),使用 Promise,实例,实例,实例MongoDB是一种文档导向数据库管理系统,由C++撰写而成。 本章节我们将为大家介绍如何使用 Node.js 来连接 MongoDB,并

  • 本文向大家介绍Node.js 使用Mongoose和Express.js路由在MongoDB中查找数据,包括了Node.js 使用Mongoose和Express.js路由在MongoDB中查找数据的使用技巧和注意事项,需要的朋友参考一下 示例 设定 首先,使用以下命令安装必要的软件包: 代码 然后,将依赖项添加到server.js,创建数据库模式和集合名称,创建Express.js服务器,并连接