6

我在 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命令并观察结果。

4

2 回答 2

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"}

...然后“提交查询”

于 2012-11-08T16:37:49.493 回答
0

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

function () {
  return db.tablebusiness.aggregate([
    { $match: {
      "_id": "the-simmons-paradise__41.85_-87.88"
    }}
  ]);
}
于 2013-11-09T01:34:54.240 回答