4

这里有一些关于如何将查询结果保存到 javascript 变量中的问题,但我无法实现它们。关键是我有一个非常困难的问题,所以在我看来,这个问题是独一无二的。

这是问题所在。我有一个名为“drives”的集合和一个名为“driveDate”的键。我需要保存 1 个具有最小日期的变量,以及另一个具有最大日期的变量。

最小日期的查询是:

> db.drives.find({},{"_id":0,"driveDate":1}).sort({"driveDate":1}).limit(1)

结果是:

{ "driveDate" : ISODate("2012-01-11T17:24:12.676Z") }

我如何将其保存到变量中,我可以执行以下操作:

tmp = db.drives.find({},{"_id":0,"driveDate":1}).sort({"driveDate":1}).limit(1)

谢谢!!!

4

2 回答 2

12

假设您尝试在 shell 中执行此操作:

 tmp = db.drives.find({}, {_id:0, driveDate:1}).sort({driveDate:1}).limit(1).toArray()[0]

find返回一个游标,您需要对其进行迭代以检索实际文档。调用toArray光标会将其转换为文档数组。

于 2012-12-02T19:32:15.183 回答
4

经过一段时间的思考,我得到了解决方案。在这里,以供将来参考:

var cursor = db.drives.find({},{"_id":1}).sort({"driveDate":1}).limit(1)

然后我可以像这样从光标中获取文档

var myDate = cursor.next()

而已。谢谢你的帮助

于 2012-12-03T07:59:36.920 回答