2012-08-23 27 views
6

Tôi đã thực hiện một lệnh trong mongo.exe. Hãy thử với lệnh cơ bản nhất.Làm thế nào để thực thi một số truy vấn trong Rockmongo hoặc mongovue?

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

tôi nhận kết quả:

Bây giờ tôi thử lệnh tương tự trong rockmongo. Nếu tôi thực hiện

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

Kết quả:

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

Về cơ bản nó dường như nói với tôi rằng kết quả là ok hoặc một cái gì đó như thế? Tôi không chắc.

Nếu tôi xây dựng:

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

Kết quả:

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

Cùng một vấn đề.

Nếu tôi làm:

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

tôi nhận:

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

có nghĩa là gì bởi hello.tablebusiness -> không xác định là ngoài tôi. Như bạn thấy từ trên, tôi thực hiện thành công truy vấn chỉ trong fineo.exe

Có vẻ như rockmongo có tính năng rất hạn chế. Tôi tự hỏi làm thế nào để thực sự thấy kết quả. Làm thế nào để thực thi lệnh mongodb ngẫu nhiên trong rockmongo và quan sát kết quả.

Trả lời

8

Trước hết tôi đồng ý với bạn: rockmongo có tính năng rất hạn chế vào lúc này. Tôi sử dụng nó cho các truy vấn đơn giản bởi vì cho phép tôi truy cập vào máy chủ từ xa của mình từ bất kỳ thiết bị hỗ trợ duyệt nào.

Khu vực "thực thi" trong rockmongo chạy với "Javascript API" và không hoạt động như vỏ mongo.

Hãy thử điều này:

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); 
} 

Bạn có thể chạy các truy vấn đơn giản nhấp vào tên bộ sưu tập, gõ điều kiện truy vấn của bạn trong khu vực trên ...

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

... và sau đó "submit truy vấn "

+0

Cảm ơn! Tôi đã nhầm lẫn về điều này quá, nhưng bây giờ tôi thấy find() đang trả về một số loại đối tượng con trỏ mà bạn phải lặp lại. Một loại đau, nhưng bây giờ tôi có thể làm việc với nó. – thaddeusmt

+0

bạn được chào đón @thaddeusmt – baffonero

0

Câu trả lời thay thế - có vẻ hơi lạ - là sử dụng phương thức aggregate, nhưng chỉ có đường ống trong một lệnh $match đơn lẻ, như sau:

function() { 
    return db.tablebusiness.aggregate([ 
    { $match: { 
     "_id": "the-simmons-paradise__41.85_-87.88" 
    }} 
    ]); 
} 
Các vấn đề liên quan