繁体   English   中英

猫鼬findOne.stream()返回多个文档

[英]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对象的形式直接提取一个文档。

阅读:

猫鼬查询

db.Collection.findOne()

如何使用猫鼬findOne

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM