0

我正在使用我的节点应用程序返回一个 Mongo 集合(使用 Mongoose),并在它返回时尝试循环遍历它以增加每个集合项的新值。

我每个都使用下划线,但由于某种原因,它没有将我添加到列表中的内容附加到列表中。我究竟做错了什么?

我的代码:

Submission.find({}).sort('date', -1).execFind(function (err, submissions) {

    _.each(submissions, function (submission, key) {
        submissions[key]['newValue'] = 'test';
    });
});

但它没有添加 newValue : 'test'。

当我 console.log 它时,我得到了这个:

[{
    user_id: 1234,
    title: 'testing tyhe slug generation',
    description: '',
    topic: 'movies',
    source: 'http://www.apple.com',
    ip: '127.0.0.1',
    approved: false,
    slug: 'testing-tyhe slug generation',
    _id: 5133a60e16661e41db000001,
    created: Sun Mar 03 2013 11:35:42 GMT-0800 (PST),
    thumbnail: '9146edb190a960c1cc3b0eda7d9f719d'
}, {
    user_id: 1234,
    title: 'New submission test slug',
    description: '',
    topic: 'food-drink',
    source: 'http://www.apple.com',
    ip: '127.0.0.1',
    approved: false,
    slug: 'new-submission-test-slug',
    _id: 5133a6c8adcde860db000001,
    created: Sun Mar 03 2013 11:38:48 GMT-0800 (PST),
    thumbnail: 'd80003cf9c81a4982fbb81c99abb52dc'
}]

这是一个异步问题吗?

4

1 回答 1

0

@bob_cobb,Mongoose 将结果作为“文档”的集合返回。我的意思是一组 javascript 对象而不是 JSON。所以在这些文档中的任何粗心操作也会影响数据库内容。

这里根据我的理解,您想在文档中添加动态或添加的属性。因此,请执行以下操作,

Submission.find({}).sort('date', -1).execFind(function (err, submissions) {

    _.each(submissions, function (submission, key) {
        //Here you are converting javascript object into JSON. 
        //That is remove all the functions associated with "submission" object.
        submissions[key] = submissions[key].toJSON(); 
        submissions[key]['newValue'] = 'test';

        //Note: Here submission.save() won't work.
    });

});
于 2013-03-07T11:52:44.517 回答