替代toArray()吗?

时间:2019-09-01 06:21:17

标签: arrays mongodb mongodb-query

我有一条简单的路线,使用toArray()将数据返回到扩展应用程序,它可以工作,但是我只想返回json对象而不是将它们作为数组返回。

这是我的代码,有没有办法返回相同的数据,但不是以数组形式返回?

app.get("/test/", (request, response) => {
    collection.find( {"DataSet":"somevalue"}).limit(3).toArray((error, result) => {
        if(error) {
            return response.status(500).send(error);
        }
        response.send(result);
    });
});

2 个答案:

答案 0 :(得分:0)

如果您只想返回查询结果(mongoDB?),则应如下所示

app.get("/test/", (request, response) => {
   response.send(collection.find( {"DataSet":"somevalue"} ).limit(3))
});

https://docs.mongodb.com/stitch/mongodb/actions/collection.find/

答案 1 :(得分:0)

默认情况下,MongoDB通常通过“光标”对象处理查询结果。 filterMax方法只使用该光标并检索数组中的所有结果。

看起来您正在使用Node.js驱动程序,对吗?在这种情况下,您可以简单地遍历光标,而不是通过each()进行迭代,也可以通过nextObject()分别获取对象。

这两个链接都将您定向到光标对象在同一文档页面的不同部分。也可以在此处找到有关可以在游标上执行的操作的更多信息。我强烈建议进一步研究该文档。