在MongoDB mapReduce emit中包含dict作为值

Including dict as value in MongoDB mapReduce emit

本文关键字:dict 包含 MongoDB mapReduce emit      更新时间:2023-09-26

对于map函数,我有以下代码:

self.url_with_sessions_mapper = Code("""
    function(){
        emit(this.page, {'session':this.session, 'time':this.time});
    }
    """)

但由于某些原因,这不是:

self.url_with_sessions_mapper = Code("""
    function(){
        emit(this.page, {this.session:this.time});
    }
    """)

我得到这个错误信息

on namespace test_database.$cmd failed: exception: SyntaxError: Unexpected token.

为什么后一种语法不能工作?

结果是字典('关联数组')中的键总是被解释为字符串,而不是变量名。为了达到我的目的,语法是:

    self.url_with_sessions_mapper = Code("""
        function(){
            var dd = {};
            dd[this.session] = this.time;
            emit(this.page, dd);
        }
        """)