所以我有一个看起来像的集合:

{
 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/

10-15 04:17