Mongodb 如何在mongo JS中重新定向输出

Mongodb 如何在mongo JS中重新定向输出,mongodb,mongojs,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发送到其他位置的outpu

我的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文件中。因为我需要通过电子邮件发送此文件以进行进一步处理。可能吗?谢谢。

您可以从命令行使用
mongoexport

例如:

mongoexport -d mydatabase                   \
    --fields _id                            \
    --query '{ email: { $exists: false }}'  \
    -c user                                 \
    --csv                                   \
    --out myfile_for_further_processing.csv
有关更多选项,请查看

编辑 哦,我没有注意到你使用
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');
});

(代码中可能有很多错误,我只是编写了文本w/o editor/test。)

不要使用db.eval()使用shell并将其输出重定向到文件。谢谢,我会检查的谢谢,我会试试,让你知道