向大型集合中的每个文档添加新属性
使用 mongodb shell,我尝试向大型集合中的每个文档添加新属性。该集合(列表)有一个名为“地址”的现有属性。我只是尝试添加一个名为 LowerCaseAddress 的新属性,该属性可用于搜索,这样我就不需要使用不区分大小写的正则表达式进行地址匹配,这很慢。
这是我尝试在 shell 中使用的脚本:
for( var c = db.Listing.find(); c.hasNext(); ) {
var listing = c.next();
db.Listing.update( { LowerCaseAddress: listing.Address.toLowerCase() });
}
它运行了大约 6 个小时,然后我的电脑崩溃了。是否有更好的方法向大型集合(约 400 万条记录)中的每个文档添加新属性?
Using the mongodb shell, I'm trying to add a new property to each document in a large collection. The collection (Listing) has an existing property called Address. I'm simply trying to add a new property called LowerCaseAddress which can be used for searching so that I don't need to use a case-insensitive regex for address matching, which is slow.
Here is the script I tried to use in the shell:
for( var c = db.Listing.find(); c.hasNext(); ) {
var listing = c.next();
db.Listing.update( { LowerCaseAddress: listing.Address.toLowerCase() });
}
It ran for ~6 hours and then my PC crashed. Is there a better way to add a new property to each documentin a large collection (~4 million records)?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你的 JavaScript 不起作用,但下面的代码可以工作。但不知道400万条记录需要多长时间。
you JavaScript didn't work, but the code below works. But don't knew how long it takes for 4 Million records.
您也可以使用 updateMany 来实现此目的:
You can use updateMany for this too: