我正在尝试从我在Azure上的Cosmos DB中的集合中获取所有文档。该集合包含大约50.000个文档。
我收到以下错误:MongoError:光标不存在、被杀死或超时
:
const mongoose = require('mongoose');
const mongooseOptions = { useNewUrlParser: true };
mongoose.connect(connectionString, mongooseOptions);
mongoose.set('useCreateIndex', true);
mongoose.Promise = global.Promise;
const mongoDB = mongoose.connection;
mongoDB.on('error', console.error.bind(console, 'MongoDB connection error:'));
const Schema = mongoose.Schema;
const MongoEidModelSchema = new Schema({
uid: { type: String, unique: true },
eid: { type: String, unique: true }
});
const MongoEidModel = mongoose.model('eids', MongoEidModelSchema);
MongoEidModel.find({}, {timeout: false}).then(data => {
console.log(data);
console.log(Object.keys(data).length);
});
当我在find()
上设置1000或1500的限制时,它会起作用。
我还测试了将集合上的RU/s从400更改为10.000(在Azure门户/控制台中),这也有效,但这似乎是一个昂贵的解决方案...不是吗?
我还测试了在递归循环中使用find()
批量获取该文件,直到没有更多文档,每次迭代之间都有一个睡眠(否则Cosmos DB会在一段时间后给我“429:太多请求”)。
有没有一种方法可以让我使用Node获取所有50000个文档。js和Mongoose不改变RU/s或做递归循环?
提前谢谢!
/丹尼尔
为了避免混淆,我假设您正在使用MongoDB驱动程序访问Azure中的Cosmos?
对于MongoDB,查询限制为16Mb(如果您返回50k文档,很可能会超过这个限制)。请参阅此处:https://docs.mongodb.com/manual/reference/limits/
节点驱动程序中可能没有强制执行该限制(我还没有检查其源代码),在这种情况下,值得参考Azure文档:https://docs.microsoft.com/en-us/azure/cosmos-db/faq
结果是,当您处理像这样的大量文档时,您真的应该使用光标在集合中游走。请参阅此处:如何使用N在MongoDB中使用cursor.foreach()ode.js?
希望这有助于:)
我想从一个集合中得到所有的文件,然后用它们,得到他们的身份证。这里我的集合如何是用户集合,它只是一个集合和多个文档。我试了一下,但不起作用: 更新
我无法在这个网站上找到所有的文字——https://niftygateway.com/marketplace 使用这个简单的代码-
我用Discord.js编写了一个不和谐机器人,它曾经获得不和谐服务器的所有用户(我只有一个不和谐服务器中的机器人),但现在它只有59个成员。我在服务器上有300个不和谐的用户。
问题内容: 我使用新的Google驱动器api,但无法从Google驱动器中获取所有文件夹,只能获取使用Google驱动器api创建的文件夹…有人知道为什么会这样吗? 这是我的代码: 现在,我想查看rootFolder驱动器中的所有文件夹,我尝试了requestSync(),但结果是相同的……请提供帮助! 另一个问题:如何设置AppFolder?我只看到getAppFolder,但如何设置? 谢谢
问题内容: 我有一个文件,称之为。 有没有一种方法可以“读取”其中的内容,并获取其中的所有类的列表作为完整的类名,包括其包,例如? 我在考虑,但是似乎找不到用于检索整个类集的方法。 问题答案: 您可以将dexlib2库用作独立库(在maven中可用),以读取dex文件并获取类列表。 请注意,类名将采用“ Ljava / lang / String;”的形式,这就是它们如何存储在dex文件(和Jav
问题内容: 使用来获取Cookie 似乎很简单,它似乎将Cookie存储在其他位置。 我做了一些研究,然后从对象中获取了一些Cookie 。但是,其中不包含: 奇怪的是,ios 9中还有一个类负责管理中的cookie ,但是,该类不包含用于检索cookie数据的公共方法: 是否有解决方法来获取Cookie数据? 问题答案: 最后,对于登陆iOS的11。 https://developer.appl