0

我的查询是这样的

var db = new Db('NodeZMQ', new Server('192.168.3.110', 27017, { auto_reconnect: true }));

db.collection('clsSession', function (err, collection)
{
    collection.findOne({ "code": { "$in": ["eventCode"] }, "Venue.allowSales": true, "status": "O", "Venue.companyCode": "companyCode" }, function (err, document)
    {
        console.log(document);
    });
});

它提供一份文件。实际上它有很多文件..因为我使用的是 findOne 它就是这样..如何获取所有匹配的文件?我正在使用 node.js 和 mongodb。我是 mongoDB 和 node.js 的新手。

4

2 回答 2

3

使用collection.find(而不是collection.findOne(. 这将返回一个游标对象,您可以使用它来迭代结果。

游标是一个有很多方法的对象。您会发现最有帮助的是方法.hasNext()检查是否还有未处理的文档和.next()方法,它会为您提供下一个文档。

于 2013-04-19T09:34:32.680 回答
0
var db = new Db('NodeZMQ', new Server('192.168.3.110', 27017, { auto_reconnect: true }));

db.collection('clsSession', function (err, collection)
{
collection.find({ "code": { "$in": ["eventCode"] }, "Venue.allowSales": true, "status":    "O", "Venue.companyCode": "companyCode" }).toArray(function (err, document)
{
    //here document is an array contains all the matching reocrds
    console.log(document);
});
});

此示例基于您使用 mongo-native 驱动程序的假设,但它有助于解决您的问题。

于 2013-04-19T10:59:55.463 回答