1
比方说,我有以下的MongoDB文档。哪个更快,MogoDB聚合还是自我实现“For”循环?
{
(...)
"services": {
"TCP80": {
"data": [{
"status": 1,
"delay": 3.87,
"ts": 1308056460
},{
"status": 1,
"delay": 2.83,
"ts": 1308058080
},{
"status": 1,
"delay": 5.77,
"ts": 1308060720
}]
}
}}
我要检索的“数据”数组,其“TS”值大于“1308056460”更大的所有条目。因此,预期的结果是,
[
{
"status": 1,
"delay": 2.83,
"ts": 1308058080
},{
"status": 1,
"delay": 5.77,
"ts": 1308060720
}
]
一种方法可以使用MongoDB聚合函数。
db.test.aggregate(
{$match : {}},
{$unwind: "$services.TCP80.data"},
{$match: {"services.TCP80.data.ts": {$gte: 1308060720}}}
);
其他将检索由中间层(一个的node.js应用程序)的整个数据阵列和运行一个循环以滤除我想要的值。
撇开实施简单性,哪种方法会更有效率或产生更快的结果?为什么?
这实际上是相当主观的,这里的一般提示是“哪个最好”并不是真正的问题前提。现实倾向于指出,您的“数据库”平台“应该”比您的“应用程序”平台具有更强的处理能力。更不用说,你在两者之间传输不必要的数据。试图在这里决定是否真的有一个真正的问题。因为如果你没有“期待”数据库去做,那么为什么要使用数据库呢? – 2014-09-25 11:03:42