如何在mongo JS中重定向输出

时间:2013-11-13 22:34:55

标签: mongodb mongojs

我的mongo js文件中有类似下面的东西

db.eval(function(){
   db.user.find( { email : {$exists : false}} ).forEach(
     function(found){
            id = found._id; 
            print(id);  // this will print to mongo logs

print()将打印到mongodb日志,但我想将这些ID发送到其他位置的output.txt文件。因为我需要通过电子邮件发送此文件以便进一步处可能吗 ?感谢..

1 个答案:

答案 0 :(得分:0)

您可以从命令行使用mongoexport

示例:

mongoexport -d mydatabase                   \
    --fields _id                            \
    --query '{ email: { $exists: false }}'  \
    -c user                                 \
    --csv                                   \
    --out myfile_for_further_processing.csv

有关更多选项,请查看docs

修改 哦,我没有注意到你使用mongojs。 你可以用另一种方式做到这一点:

var fs = require('fs');

db.user.find( { email : {$exists : false}}, function (err, docs) {
    if (err) throw err;

    var ids = docs.map(function (doc) {
        return doc._id.toHexString();
    });

    // I assume it is not critical when using sync-version
    fs.writeFileSync('output.txt', ids.join('\n'), 'utf8');
});

(代码中可能有很多错误,我只是编写了没有编辑/测试的文本。)