2017-05-22 53 views
0

我的代碼只有在我刪除了限制函數時才起作用,那麼我在做什麼錯誤?無法獲取限制在mongojs nodejs中工作

var db = mongojs('yansite', ['yansite']); 
(function() { 
    var bulk = db.ips.initializeOrderedBulkOp(); 
    bulk.find({}).limit(2).remove(); 
    bulk.execute(function (err, res) { 
     console.log('Done!') 
    }); 
})(); 

錯誤是:

TypeError: bulk.find(...).limit is not a function at D:\nodeprojects\mysite\server.js:281:19 at Object. (D:\nodeprojects\mysite\server.js:285:3) at Module._compile (module.js:570:32) at Object.Module._extensions..js (module.js:579:10) at Module.load (module.js:487:32) at tryModuleLoad (module.js:446:12) at Function.Module._load (module.js:438:3) at Module.runMain (module.js:604:10) at run (bootstrap_node.js:390:7) at startup (bootstrap_node.js:150:9)

在mongojs GitHub的README

它表明這個例子:

db.mycollection.find({}).limit(2).skip(1, function (err, docs) { ... })

+0

'limit'不能與'remo一起使用ve'。可能dupe的https://stackoverflow.com/questions/19065615/how-to-delete-n-numbers-of-documents-in-mongodb – JohnnyHK

+0

我只是沒有批量嘗試,並找到限制確實工作得到一種方式批量否?,我看到了解決方案,我只是不知道它如何工作,它返回到所以我可以刪除? ,removeIdsArray沒有被設置在那裏 – user3768470

+0

找到限制作品,當然,但不是與刪除。 – JohnnyHK

回答

0

我做到了,但有點醜我希望有一種方式,它很難相信沒有

(function() { 
    db.usersChatMessages.find({}).limit(2, function (err, doc) { 
     console.log('Done!'); 
     var docIds = []; 
     for (var i=0; i < doc.length; i++) { 
      docIds.push(doc[i]._id); 
     } 
     db.usersChatMessages.remove({_id: {$exists: true, $in: docIds}}, function (err, doc) { 
      console.log('removed!'); 
     }); 
    }); 
})();