我能以某种方式添加静态(未计算)值的自定义字段吗?
我想在发送之前准备对象,我需要删除一些包含内部信息的字段,并添加一些实体ID字段.
例如,我有像这样的对象的集合"test"
{_id: ObjectId(...), data: {...}}
Run Code Online (Sandbox Code Playgroud)
我需要将其转换为
{data: {...}, entity_id: 54}
Run Code Online (Sandbox Code Playgroud)
那么如何在我的代码中添加entity_id:54而无需循环结果?
db.test.aggregate({ $project: {_id: 0, data: 1, entity_id: ? } })
Run Code Online (Sandbox Code Playgroud)
谢谢
Ela*_*lad 45
请注意,$ literal是在Mongo 2.6中实现的.所以现在你可以简单地写:
db.test.aggregate(
{$project: {_id: 0, data: 1, entity_id: {$literal: 54}}})
Run Code Online (Sandbox Code Playgroud)
Asy*_*sky 20
从2.6开始编辑$literal
表达式,因此您现在不必使用变通方法.
原始答案:我知道这可能听起来很愚蠢,但你可以使用"无操作"表达来"计算"你需要的东西.
例:
db.test.aggregate( { $project : {_id:0, data:1, entity_id: {$add: [54]} } } )
Run Code Online (Sandbox Code Playgroud)
有一个提议的$literal
运营商正是这个用例,但它还没有实现,你可以在这里投票.
归档时间: |
|
查看次数: |
26503 次 |
最近记录: |