gpt4 book ai didi

node.js - 在 Node 中对 mongodb 客户端 findOne() 进行排序

转载 作者:可可西里 更新时间:2023-11-01 10:15:23 25 4
gpt4 key购买 nike

我正在使用 Lambda 和 Node.js 在 AWS 中构建无服务器应用程序。我目前在 mLab 有一个 MongoDB。我正在尝试根据 ISODate 字符串获取“最新”记录。使用 findOne() 或 find w/limit 1 它每次都返回相同的记录(不是最新的记录)。

我的测试表中有 2 条记录,如下所示:

{ "field1": "myField", "versionTimestamp": "2017-06-13T18:33:06.223Z" }
{ "field1": "myField", "versionTimestamp": "2017-12-13T18:33:06.223Z" }

无论我做什么,它总是返回第 6 个数

col.findOne(q, { "sort": ['versionTimestamp', 'desc'] }, function (err, doc) {
db.close();
if (err) {
sendErrorResponse("500", "Unable to query DB", err);
}
else {
if (doc) {
console.log(doc);
callback(null, doc.invoiceDocument);
}
else {
sendErrorResponse("404", "Record Not Found", "No records found that match those parameters.");
}
}
});

或者限制为 1

col.find(q, { "limit": 1, "sort": ['versionTimestamp', 'desc'] }).toArray(function (err, docs) {
db.close();
if (err) {
sendErrorResponse("500", "Unable to query DB", err);
}
else {
if (docs) {
console.log(docs[0]);
callback(null, docs[0].invoiceDocument);
}
else {
sendErrorResponse("404", "Record Not Found", "No records found that match those parameters.");
}
}
});

最佳答案

Asya 找到了!这是排序选项中格式错误的数组:

sort takes an array of sort preferences, default being 'asc'. I'm guessing you want another set of array brackets: [ [ 'field', 'desc'] ] – Asya Kamsky yesterday

关于node.js - 在 Node 中对 mongodb 客户端 findOne() 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44531148/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com