mongodb - 遍历 MongoDB 中的列表
问题描述
我是 MongoDB 的新手,我每天都在尝试从集合中删除一些条目。我必须每天都这样做,因为收藏量很大,并且按月删除。这是我的示例代码:
days = ['2018-04-01-day','2018-04-02-day','2018-04-03-day','2018-04-04-day','2018-04-05-day','2018-04-06-day','2018-04-07-day','2018-04-08-day','2018-04-09-day','2018-04-10-day','2018-04-11-day','2018-04-12-day','2018-04-13-day','2018-04-14-day','2018-04-15-day','2018-04-16-day','2018-04-17-day','2018-04-18-day','2018-04-19-day','2018-04-20-day','2018-04-21-day','2018-04-22-day','2018-04-23-day','2018-04-24-day','2018-04-25-day','2018-04-26-day','2018-04-27-day','2018-04-28-day','2018-04-29-day','2018-04-30-day']
var day;
for(day of days)
{
print(day)
db.<colln>.remove
(
{ 'time_bucket': day },
{ 'URL':/https:\/\/abc.com/}
)
}
上面的代码执行,但只给了我以下内容:
2018-04-06-day
WriteResult({ "nRemoved" : 0 })
我本来希望至少能看到所有打印的日期,但即使这样也没有发生。
我尝试了使用 UTC 日期方法的其他方法,但它们似乎效果不佳。
我能够使以下代码适用于较小的集合:
db.<small colln>.remove(
{ 'time_bucket': '2018-04-month' },
{ 'URL':/https:\/\/abc.com/}
)
但是上面的代码(按月删除)不适用于更大的集合,这就是为什么我被迫每天都这样做,通过创建一个数组来持续多天。我知道这不是最有效的方法,但我只需要让它工作。
任何帮助将非常感激。
解决方案
for(var day in days)
将遍历数组的索引,产生
for(var day in days){ print (day) }
0
1
2
3
4
5
我相信您打算使用for(var day of days)
:
for(var day of days){ print (day) }
2018-04-01-day
2018-04-02-day
2018-04-03-day
2018-04-04-day
2018-04-05-day
2018-04-06-day
只是想添加更多细节。我在这个集合上的本地 MongoDB 4.2 上测试了以下内容:
{ "_id" : ObjectId("6053e2f7acf8d9b7cc48adf0"), "name" : "test 4", "time_bucket" : "2018-04-03-day" }
{ "_id" : ObjectId("6053e4ccacf8d9b7cc48adf1"), "name" : "test", "time_bucket" : "2018-04-01-day" }
{ "_id" : ObjectId("6053e4d3acf8d9b7cc48adf2"), "name" : "test 1", "time_bucket" : "2018-04-01-day" }
{ "_id" : ObjectId("6053e4ddacf8d9b7cc48adf3"), "name" : "test 34", "time_bucket" : "2018-04-02-day" }
const days = ['2018-04-01-day','2018-04-02-day']
for(let day of days){ db.testcol.remove( { 'time_bucket': day }) }
执行后,集合如下所示:
{ "_id" : ObjectId("6053e2f7acf8d9b7cc48adf0"), "name" : "test 4", "time_bucket" : "2018-04-03-day" }
所以一切似乎都按预期工作。
推荐阅读
- javascript - D3 v3 分组条形图,通过刷涂进行平移和缩放
- javascript - 使用 Javascript 围绕中点旋转 svg 箭头
- r - R用非NA值的增量/减量替换NA
- reactjs - 如何将 React 类组件字段转换为钩子
- php - 无法连接到ajax中的路由
- mongodb - Mongodb $addFields 如果为 null 则不输出数据
- c# - Xamarin表单 - 选择选项时 - 将隐藏标签的ID发送到C#后面的代码
- excel - 在 excel 中运行 SQL 语句,将数据作为 excel 工作表本身的输入
- scala - apply() 优先于可变参数调用
- json - 将属性添加到 JSON 对象的 Jolt 转换