所以我有一个看起来像这样的集合:
{
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 occured"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31877324/