首页 > 在使用nodejs的mongodb官方库 更新一个文档时出现 topology was destroyed 怎么办?

在使用nodejs的mongodb官方库 更新一个文档时出现 topology was destroyed 怎么办?

有这么一个文档结构:

var doc1 = {

type:"floder",
name:"/",
contain:[
    {type:"file",name:"1.txt",src:"/",size:'70KB',upLoadTime:'2015-07-01 23:40',realName:'a.html'},
    {
        type:"floder",name:"base",contain:[
            {type:"floder",name:"b",contain:[
                {type:"file",name:"index.html",src:"/base",size:'3.6KB',upLoadTime:'2015-07-01 23:40',realName:'b.txt'},
            ]},
            {type:"file",name:"index.html",src:"/base",size:'3.6KB',upLoadTime:'2015-07-01 23:40',realName:'b.txt'},
            {type:"file",name:"base.js",src:"/base",size:'3KB',upLoadTime:'2015-07-01 23:40',realName:'c.txt'}
        ]
    }
]

};

doc是findOne()得到的一个文档,然后我对doc做了一个更改:
doc.contain.push({..});

之后更新doc:
collection.updateOne({_id:doc._id},{$set:doc},function(err){

    mongo.close();
    if(err){
        console.log(err);
        return callback(err);
    }
callback(null);

});

发现报错 :topology was destroyed (拓扑结构改变)。
直接在使用shell窗口使用db.filesys.updateOne({},{$set:doc})是可以的。是因为官方库还的问题吗?
使用代码的话我必须先删除原来的doc再把刚刚更改的doc插入进去?我希望能直接更新doc。大家有没有好方法?


后来发现是我之前有一句mongo.close(),不好意意思,所以可以直接使用代码。

【热门文章】
【热门文章】