由于Nodejs是异步的,有没有人有一种很好的方式来排序mongodb请求。
假设我将 data1 插入数据库,并且我立即请求读取该数据,我的读取请求可能会在数据写入数据库之前执行。
有没有一种很好的方法来解决这个问题,而不是在请求上强制同步行为?
您可以简单地使用只有在插入完成后才会调用的回调。
var
mongodb = require('mongodb'),
client = new mongodb.Db('test', new mongodb.Server('127.0.0.1', 27017, {})),
test = function (err, collection) {
collection.insert({ hello : 'world' }, {safe:true}, function(err, docs) {
collection.count(function(err, count) {
console.log(count);
});
collection.find({ hello : 'world' }).toArray(function(err, results) {
console.log(results);
});
});
};
client.open(function(err, client) {
client.collection('test_collection', test);
});
如果您需要更复杂的功能,请查看异步模块。它应该可以帮助您组织许多回调。