[英]Mongoose findOne.stream() returning more than one document
我正在使用猫鼬查询一个文档,并且希望将其通过管道传输到流中。 我的数据库有多个帐户文档。 如果我只是:
db.Accounts.findOne({}).exec(function(err, data){
...
});
它正确返回单个文档。 然而,
var mongooseStream = db.Accounts.findOne({}).stream({
transform: JSON.stringify
}),
writeStream = require('fs').createWriteStream('accounts');
mongooseStream.pipe(writeStream);
上面这个新创建的writeStream在其中列出了每个帐户。
最后,如果我.find({}).limit(1).stream()
,它将仅返回流中的一个文档。
关于为什么流findOne({})
无法正常运行的任何想法? 谢谢!
您尚未对findOne()
施加任何条件,并且正在对其进行流式处理。 因此,它将持续执行findOne()
并将其提供给流。 findOne()
的用法如下:
SchemaModel.findOne({
//conditions
},function(){
//this is callback
});
据我了解,您正在尝试做的是,您正在尝试仅流式处理集合中的一个文档。 为此, findOne
并不是您所需要的,因为当您定义一组条件时, findOne
用于直接从数据库中以Javascript对象的形式直接提取一个文档。
阅读:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.