这两天用mongodb数据库,遇到了个问题,取出的数据和存储时的顺序不一样。
存储的顺序:

取出后展示效果:

怎么按着传入的顺序输出呢?
查资料得出数据库的_id存入时是计算有时间的,这就好办啦,加上
sort({
time: -1
})
time: -1
})
就ok了,详细
var mongodb = require('./db');
module.exports = Person;
function Person(name){
this.name = name
}
Person.get = function(name, callback) {
mongodb.open(function (err, db) {
if (err) {
return callback(err);
}
db.collection('people_list', function (err, collection) {
if (err) {
mongodb.close();
return callback(err);
}
var query = {};
if (name) {
query.name = name;
}
collection.find(query).sort({
time: -1
}).toArray(function (err, docs) {
mongodb.close();
if (err) {
return callback(err);
}
callback(null, docs);
});
});
})
}
module.exports = Person;
function Person(name){
this.name = name
}
Person.get = function(name, callback) {
mongodb.open(function (err, db) {
if (err) {
return callback(err);
}
db.collection('people_list', function (err, collection) {
if (err) {
mongodb.close();
return callback(err);
}
var query = {};
if (name) {
query.name = name;
}
collection.find(query).sort({
time: -1
}).toArray(function (err, docs) {
mongodb.close();
if (err) {
return callback(err);
}
callback(null, docs);
});
});
})
}
最后输出结果:

在使用MongoDB时遇到数据取出顺序与存储顺序不一致的问题。通过研究发现,_id字段在存储时包含了时间信息。为解决此问题,在查询时可以利用这一特性,结合排序操作,确保数据按指定顺序输出。最终成功实现了按传入顺序显示数据的目标。
1939

被折叠的 条评论
为什么被折叠?



