所以我有一个看起来像的集合:
{
date:"20150730",
store:"X",
catalogue : [{...}, ..., {...}] // ~3000 items
},
{
date:"20150807",
store:"X",
catalogue : [{...}, ..., {...}] // ~3000 items
},
{
date:"20150807",
store:"Y",
catalogue : [{...}, ..., {...}] // ~25000 items
}
我打算做的查询是:
collection.findOne({store:_store},{"sort":{'date':-1}}, function(err,doc){
doc && console.log(doc);
err && console.log(err);
});
我想将其翻译为“获取_store的最新文档”(第一个问题是吗?)
然后,如果我在商店X上尝试查询,它可以正常运行,但在商店Y上,它将抛出我:
[Error: parseError occured]
更多信息 :
Object.bsonsize(db.ZeCollection.findOne({store:"X"}))
-> 845994
Object.bsonsize(db.ZeCollection.findOne({store:"Y"}))
-> 7351092
所有文件均为有效JSON
用于node.js的Mongodb包装器是
mongojs
(npm install mongojs)您对此问题有任何线索吗?
最佳答案
那确实是mongojs的问题。
Mongojs在检索大数据时关闭连接池。
但是好消息:Mongojs解决了这个问题。
所以我只需要做npm update mongojs
,现在一切正常。
谢谢你们。
关于node.js - 文档大小是否暗示“发生了parseError”?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31877324/