MongoJS returns 没有结果而 MongoClient 有

MongoJS returns no results while MongoClient does

我正在尝试使用 Node.js 连接到 MongoDB。 MongoClient 工作正常,但 Mongojs 不行:

var MongoClient = require('mongodb').MongoClient;
var mongojs = require('mongojs');
var url = '...';

MongoClient.connect(url, function(err, client) {
    var cursor = client.db("events").collection('events').find();
    cursor.each(function(err, event) {
        console.log("OK MONGODB");
    });     
});

mongojs(url, ['events']).events.find(function(err, events) {
    events.forEach(function(event) {
        console.log("OK MONGOJS");
    });
});

"OK MONGODB" 被记录多次; "OK MONGOJS" 不是。

请问有什么问题吗?

在您的情况下,MongoClient 中使用的 url 应该与 mognojs 不同。

假设url'mongodb://localhost/'MongoClient也可以。但是,url used in mongojs 应该添加 dbname 如下

var db = mongojs('mongodb://localhost/mydb', ['mycollection']);

所以应该是下面这样

mongojs(url+'events', ['events']).events.find(...);