Raj*_*Raj 6 mongodb node.js express mongodb-query
我正在后端使用Mongodb处理nodejs/express应用程序.在我的一个API调用中,根据特定查询字符串参数的存在或另一个,我想使用$ gt或$ lt向Mongodb发出查询.
在某些情况下,我们要求的所有内容都少于tokenId使用$ lt,但在其他情况下,我们希望所有内容都比tokenId使用$ gt 更大.如果不重复查询,我们如何做到这一点?
这是一个示例查询:
collection.find({'film_id': {$in : genre}, '_id': {$lt: tokenId}}).sort({'_id': -1}).limit(25).toArray(function(error, films)
Run Code Online (Sandbox Code Playgroud)
有没有办法动态创建查询而不实际执行2个不同的查询?
Joh*_*yHK 17
以编程方式构建查询对象:
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);
Run Code Online (Sandbox Code Playgroud)
更新
既然Node.js 4+支持计算属性名称,您可以query一步创建:
var query = {
film_id: {$in: genre},
_id: {[param ? '$lt' : '$gt']: tokenId}
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7190 次 |
| 最近记录: |