Mit*_*hun 0 javascript mongodb aggregation-framework
几乎是MongoDB聚合框架的新手.我想知道是否有办法使用动态变量在聚合框架中执行项目.
例如.这是我的代码,它不是javascript语法,但如果你明白了这一点:
// My javascript variable
var my_variable = "salary";
//
db.article.aggregate(
{ $project : {
title : 1 ,
author : 1 ,
}});
Run Code Online (Sandbox Code Playgroud)
现在,在上面的代码中,我想动态地将"author"的投影替换为"salary".对于这样的事情
db.article.aggregate(
{ $project : {
title : 1 ,
"my_variable" : 1 ,
}});
Run Code Online (Sandbox Code Playgroud)
在这种情况下,将动态投影薪水.
这里的变量不是真正动态的,因为它在聚合管道中不能改变.聚合框架不会评估JavaScript,因此您提供的任何值都必须从提供的管道或正在处理的文档中派生.
但是,您当然可以通过编程方式构建管道以实现结果.
例如,使用mongoshell可以创建一个变量来表示聚合管道的一些(或全部):
var myProjection = {
title : 1,
author: 1,
}
// Replace author with salary
delete myProjection.author
myProjection.salary = 1
// Projection will be: { "title" : 1, "salary" : 1 }
db.article.aggregate({ $project: myProjection})
Run Code Online (Sandbox Code Playgroud)
在这种情况下,在将聚合查询发送到MongoDB服务器之前,shell myProjection会对变量进行评估mongo.
| 归档时间: |
|
| 查看次数: |
1510 次 |
| 最近记录: |