在 Node.js Mongoose 中,我想更新每个字段……我该怎么做?

Posted

技术标签:

【中文标题】在 Node.js Mongoose 中,我想更新每个字段……我该怎么做?【英文标题】:In Node.js Mongoose, I want to update each field...how can I do that? 【发布时间】:2011-08-14 02:12:42 【问题描述】:
User.find(,function(err,docs) 
            foreach(docs as d)
                d.name="apple";
                d.save();
            ;
        ); 

这行不通!我收到一些“唯一标识符”错误。谁能帮我解决这个问题?

【问题讨论】:

对mongoose一无所知,今天才看到一个Node的演示,也许给你所有的文档命名为“apple”是不对的?您可以在 foreach 之前执行 d.name="apple"+(i++); 并定义 var i=0 吗?或者你在说search.cpan.org/dist/Mongoose/lib/Mongoose/Intro.pod#_id 【参考方案1】:

d 有唯一的索引集吗?如果是这样,您将无法为多个实例设置相同的内容。

【讨论】:

【参考方案2】:

我认为您错误地使用了 foreach。尝试用以下内容替换回调的内容:

docs.forEach(function(elem, index, array) 
    elem.name = "apple";
    elem.save();
);

查看 MDC 了解有关 foreach 的更多信息。

【讨论】:

你不是说forEach吗? JS 中的案例很重要 :) 你是对的,不错的收获!答案是 wiki 风格,所以你也可以随时修复这样的小错误。

以上是关于在 Node.js Mongoose 中,我想更新每个字段……我该怎么做?的主要内容,如果未能解决你的问题,请参考以下文章

Mongoose - 更新数组中的每个子文档(node.js)

node.js mongoose 无法更新某些字段

node.js mongoose 无法更新某些字段

在 Mongoose (mongodb node.js) 中,如何更新现有值并插入缺失值,而不删除未指定的值?

Node.js:如何在 mongoose.js 中执行 count 命令?

Node.js Mongoose 更新嵌入式文档,拉取不持久