27

我可以以某种方式添加具有静态(未计算)值的自定义字段吗?

我想在发送之前准备对象,我需要删除一些带有内部信息的字段并添加带有一些实体 ID 的字段。

例如,我有这样的对象集合“测试”

{_id: ObjectId(...), data: {...}}

我需要将其转换为

{data: {...}, entity_id: 54}

那么如何添加 entity_id: 54 而不会在我的代码中循环结果呢?

db.test.aggregate({ $project: {_id: 0, data: 1, entity_id: ? } })

谢谢

4

2 回答 2

54

注意 $literal 是在 Mongo 2.6 中实现的。所以现在你可以简单地写:

db.test.aggregate(
   {$project: {_id: 0, data: 1, entity_id: {$literal: 54}}})

请参阅$literal

于 2014-06-03T06:37:41.740 回答
22

从 2.6 开始编辑$literal表达式存在,因此您现在不必使用解决方法。

原始答案:我知道这听起来可能很愚蠢,但是您可以使用“无操作”表达式来“计算”您需要的内容。

例子:

db.test.aggregate( { $project : {_id:0, data:1, entity_id: {$add: [54]} } } )

有一个$literal针对此用例的提议运算符,但尚未实施,您可以在此处投票。

于 2013-02-27T12:21:20.787 回答