我是javascript和MongoDB技术的新手。我正在尝试根据某些条件(使用字段和值)查询“业务”集合。我需要使用日期字段(CreateDate)对查询结果进行排序。你能帮助我吗?在此先感谢您的帮助!:) [Screenshot of my code attached here]
请注意:CreateDate字段中的值以YYYY-MM-DD格式存储为字符串,即2017-04-01。
我收到一条错误消息
“无法读取属性'sort'的未定义”
当我尝试执行以下代码时:
CODE:
exports.readDocument = function(collection, uniqueKey, field, value, callback) {
MongoClient.connect(url, function(err, db) {
assert.equal(null, err);
db.collection("Businesses").find({
"Id": uniqueKey
}, {
[field]: value,
_id: 0
},
function(err, result) {
if (result) {
result.toArray(function(err, items) {
console.log("toArray", items, err);
});
callback(true);
} else {
callback(false);
}
}).sort({
"Created Date": -1
});
db.close();
});
};
答案 0 :(得分:0)
确保您在查询中使用的字段名称("创建日期")与文档中使用的名称相同。另外,最好坚持使用带下划线的小写字母数字字段名称。
答案 1 :(得分:0)
您需要检查数据库名称是否正确。 还要确保在排序之前获得预期的结果。 我非常怀疑结果是null,这就是为什么你收到错误“undefined”对象。
答案 2 :(得分:0)
我认为你的语法错了。你的语法应该是这样的
<?php
for ( $i = 000; $i < 1000; $i++){
echo str_pad($i, 3, '0', STR_PAD_LEFT) . "<br />\r\n";
}
?>
答案 3 :(得分:0)
db.collection("Businesses").find({
"Id": uniqueKey
}, {
[field]: value,
_id: 0
}).sort({"Created Date": -1}).exec(function(err, result) {
if (result) {
result.toArray(function(err, items) {
console.log("toArray", items, err);
});
callback(true);
} else {
callback(false);
}
})
试试这个形式的mongoose驱动程序。