2012-06-05 21 views
10
advertisers = db.dbname.find('my query which returns things correctly'); 

Tôi nhận ra bây giờ nó trả về một con trỏ vào danh sách các bộ sưu tập.MongoDB - không hiểu cách lặp qua các bộ sưu tập bằng một con trỏ

Nhưng tôi không chắc chắn cách lặp qua chúng và nhận từng bộ sưu tập.

tôi muốn thử một cái gì đó như thế này:

advertisers.each(function(err, advertiser) { 
    console.log(advertiser); 
}); 

Nhưng điều đó không làm việc. Nhưng tôi không thấy từ tìm kiếm trực tuyến như thế nào để làm cho nó thực sự làm việc với JavaScript đơn giản.

Sau đó, tôi có mã này:

var item; 

if (advertisers != null) 
{ 
    while(advertisers.hasNext()) 
    { 
     item = advertisers.next(); 
    } 
} 

và nó mang lại cho lỗi này: SyntaxError: syntax error (shell):1

giúp nhiều đánh giá cao!

Cảm ơn!

Trả lời

31

Cách nhanh chóng và dơ bẩn là:

var item; 
var items = db.test.find(); 
while(items.hasNext()) { 
    item = items.next(); 
    /* Do something with item */ 
} 

Ngoài ra còn có các chức năng hơn:

items.forEach(function(item) { 
    /* do something */ 
}); 
+0

thanks..I đã cố gắng đó, nhưng đối với một số lý do tôi đã nhận được một lỗi như thế này: Tue 05 tháng sáu 16:31 : 08 SyntaxError: lỗi cú pháp (shell): 1 Thứ Ba 5 tháng 5 16:31:08 ngoại lệ chưa được khai báo: error hasNext: false – Genadinik

+0

Tôi không có() trên hasNext. –

+0

@Justing Tôi đã thử điều đó, nhưng nó vẫn không hoạt động vì một lý do nào đó. – Genadinik

0

Vì bạn không hiển thị stack sau đó tôi giả định vấn đề của bạn là tham số bạn đang đi qua đối với hàm tìm kiếm, thông số này phải là đối tượng JavaScript, do đó:

var query = { 
    key: 'my query which returns things correctly' 
} 

advertisers = db.dbname.find(query); 
advertisers.each (function(err, doc){ 

    //.... error code not included..... 
    console.log(doc); 
}); 
1

One mo tái cách để lặp qua các bộ sưu tập được sử dụng method toArray con trỏ của:

var results = db.getCollection('posts').find({}).toArray(); 
 

 
for(var i = 0; i <= results.length -1; i++) 
 
{ 
 
    print("Author is:" + results[i].Author); 
 
}

Các vấn đề liên quan