gpt4 book ai didi

mongodb - 是否可以从 MongoDB 查询中返回计算字段?

转载 作者:IT老高 更新时间:2023-10-28 13:13:42 26 4
gpt4 key购买 nike

在 SQL 中我可以做类似的事情

SELECT myNum, (myNum+1) as `increment` FROM myTable

有效地执行任意数学和其他函数并将它们作为结果中的字段返回。 MongoDB也能做到这一点吗?

db.test.find({}, {_id:1, myNum:1, increment:function() { return this.myNum + 1;}});

这不会像我期望的那样返回“增量”字段。

我能找到的关于这个主题的所有其他相关问题都涉及 GROUPed 查询,而这个不是;我只是在获取文档时向文档添加一个“虚拟”字段(客户端计算?)。

另外,这个问题似乎是一个没有“reduce”的“map”;每行都有自己的计算字段。有没有办法将映射函数的结果作为结果/光标返回?

最佳答案

MongoDB 2.2 中的新 Aggregation Framework 允许您通过 $project 运算符添加计算字段。这与 arbitrary 函数不太一样,因为您需要使用 supported operators ,但它确实提供了很大的灵 active 。

这是您将 _ids 递增到新 myNum 字段的示例:

MongoDB shell version: 2.2.0-rc0

> db.test.insert({_id:123});

> db.test.insert({_id:456});

> db.test.aggregate(
{ $project : {
_id : 1,
'myNum': { $add: [ "$_id", 1]}
}}
)
{
"result" : [
{
"_id" : 123,
"myNum" : 124
},
{
"_id" : 456,
"myNum" : 457
}
],
"ok" : 1
}

关于mongodb - 是否可以从 MongoDB 查询中返回计算字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11909760/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com