如何在Rockmongo或mongovue中执行shell一些查询?

时间:2012-08-23 02:26:04

标签: mongodb

我在mongo.exe中执行了一个命令。让我们尝试最基本的命令。

> db.tablebusiness.find({"_id": "the-simmons-paradise__41.85_-87.88"});

我得到了结果:

现在我在rockmongo尝试类似的命令。 如果我执行

db.tablebusiness.find(
    {"_id": "the-simmons-paradise__41.85_-87.88"}
    );

结果:

{
   "retval": null,
   "ok": 1
} 

基本上它似乎告诉我结果还可以或类似的东西?我不确定。

如果我详细说明:

var cur = db.tablebusiness.find(
{"_id": "the-simmons-paradise__41.85_-87.88"}
);
cur.forEach(function(x){print(tojson(x))});

结果:

{
   "retval": null,
   "ok": 1
} 

同样的问题。

如果我这样做:

function () {
   return db.tablebusiness.find({"_id": "the-simmons-paradise__41.85_-87.88"});
}

我得到了:

 {
   "retval": {
     "value": "DBQuery: hello.tablebusiness -> undefined"
  },
   "ok": 1
}   

hello.tablebusiness是什么意思 - > undefined超出了我。如您所见,我在mongo.exe中成功执行了查询

看起来rockmongo的功能非常有限。我想知道如何真正看到结果。如何在rockmongo中执行随机mongodb命令并观察结果。

2 个答案:

答案 0 :(得分:8)

首先,我同意你的看法:rockmongo目前功能非常有限。 我将它用于简单查询,因为我可以从任何支持浏览的设备访问我的远程服务器。

rockmongo中的“执行”区域以"Javascript API"运行,并且不像mongo shell。

试试这个:

function () {
    var cur = db.tablebusiness.find(
    {"_id": "the-simmons-paradise__41.85_-87.88"}
    );
    var out = [];
    cur.forEach(function(x){out.push(x);});
    return(out);
}

您可以单击集合名称运行简单查询,在上部区域键入查询条件...

 {"_id": "the-simmons-paradise__41.85_-87.88"}

...然后“提交查询”

答案 1 :(得分:0)

另一个答案 - 可能看起来有点奇怪 - 是使用aggregate方法,但只使用单个$match命令中的管道,如下所示:

function () {
  return db.tablebusiness.aggregate([
    { $match: {
      "_id": "the-simmons-paradise__41.85_-87.88"
    }}
  ]);
}