2013-04-16 136 views
0

我想基准使用benchRun一些查询。但我没有看到projection的选项。benchRun查询与投影

说我想做以下查询find({_id:1},{children:0})我该如何构建操作文档来反映这一点? 或者在基准场景中投影没有意义?

文档说:

更新
更新对象(同update()函数的第二参数)。

所以我想我可以做这样的事情:

ops = [ 
    {op: "find", ns: t.getFullName(), query: {_id:1}, update: {children:0}} 
] 

它并没有失败,但不能肯定是否它实际上做任何事情。

+1

通常它是没有意义的,因为投影应该在你dB的小操作,如果它不是,那么你有一个设计问题,但是,也许有一个无证'项目'或'投影'选项呢?如果不是那么我不知道 – Sammaye

+0

@Sammaye好建议!我看着src并设法找到一个'filter'选项。 https://github.com/mongodb/mongo/blob/master/src/mongo/scripting/bench.cpp#L436 –

回答

0

有一个未公开的选项(实际上有更多)称为filter。有关更多信息,请参见GitHub src

解决办法:

ops = [ 
    {op: "find", ns: t.getFullName(), query: {_id:1}, filter: {children:0}} 
]