MongoError: $sample stage could not find a non-duplicate document after 100 while using a random cursor. This is likely a sporadic failure, please try again.
使用MongoDB版本3.2.8并刚刚升级到3.2.10。
我正在关注the example set forth by the MongoDB documentation.。文档很少。我能找到的唯一一个搜索是bug in an issue queue,它不能解决我的问题。
我的实施非常简单。
function createBattle(done) {
// Need to make sure that the yachts are different.
async.doWhilst(
function(callback) {
Yacht.aggregate(
{
$sample: { size: 2 }
},
function (err, results) {
console.log(err.toString());
if (err) return callback(err);
callback(null, results);
}
)
},
function(results) {
return results.length !== 2 || _.isEqual(results[0]._id, results[1]._id);
},
function(err, results) {
if (err) return done(err);
done(null, results);
}
)
}
我不确定发生了什么。有什么想法吗?
答案 0 :(得分:0)
我正在使用猫鼬。它正在开发中。我的猜测是,当我更改文档的架构时发生了一些事情。在创建100000个伪造文档或仅创建10个文档后,它可以与测试模拟数据一起使用。所以我决定在数据库的开发实例上重新开始收集。无论如何,我将集合导出到一个干净的JSON文件中。我删除了数据库中的集合。然后我导入了JSON转储。它工作正常。
这是一个错误。
对于我来说,这可能是MongoDB的最后一根稻草。我可能会回到SQL,使用Redis,然后尝试PostGRES。