nodejs / mongodb,删除整个集合

时间:2011-11-07 19:15:03

标签: mongodb node.js

我试图删除集合中的所有项目。

db.collection('sessions', function(err, collection) {                                      
    collection.remove();                 
});

这是我得到的错误:

node.js:134
        throw e; // process.nextTick error, or 'error' event on first tick
        ^
TypeError: Cannot call method 'getRequestId' of null
    at [object Object].executeCommand (/srv/www/www.cidev.com/nodejs/node_modules/mongodb/lib/mongodb/db.js:778:48)
    at Collection.remove (/srv/www/www.cidev.com/nodejs/node_modules/mongodb/lib/mongodb/collection.js:199:26)
    at /srv/www/www.cidev.com/nodejs/session/memory/index.js:15:20
    at [object Object].collection (/srv/www/www.cidev.com/nodejs/node_modules/mongodb/lib/mongodb/db.js:197:12)
    at new <anonymous> (/srv/www/www.cidev.com/nodejs/session/memory/index.js:14:11)
    at Object.<anonymous> (/srv/www/www.cidev.com/nodejs/session/memory/index.js:157:16)
    at Module._compile (module.js:411:26)
    at Object..js (module.js:417:10)
    at Module.load (module.js:343:31)
    at Function._load (module.js:302:12)

但是,我可以通过mongodb罚款来做到这一点:

db.sessions.remove();

通过节点实现我想要的最佳方式是什么?

由于

3 个答案:

答案 0 :(得分:13)

回到这个......只是为了更新问题。

store.collection('sessions',function(err, collection){
    collection.remove({},function(err, removed){
    });
});

答案 1 :(得分:4)

我知道这对派对来说有点晚了,而且已经发生了很大的变化,但到了remove a collection in node,你会这样做:

db.collection('someCollection').drop();

从mongo终端你可以这样做:

db.someCollection.drop();

就这么简单。

答案 2 :(得分:0)

我不确定你是否能够解决这个问题,但你的代码对我不起作用......也许是因为API的变化?无论如何,我能够使用以下代码删除整个集合的内容:

db.CollectionName.remove().exec(function(error) {
    if(error) {
        console.log('Uh oh: ' + error);
    }
    else {
        console.log('    [Existing Collection Deleted]');
    }
 });