- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个已经加载到 mongodb 的股票数据框。随着新信息的出现,我正在尝试添加每个新行是不同日期的行。但是,当我尝试插入我的新数据框时,我收到此错误:错误:E11000 重复键错误集合:timeSeries.patimeseries 索引:id dup 键:{_id:“5fb69a960438522a0631cca2”}
这是我目前正在做的
con = mongo(collection, db, url)
#look at existing data
con$find()
date Price Value2
2020-10-10 50 AAPL
2020-10-10 88 MSFT
2020-10-11 52 AAPL
2020-10-11 54 MSFT
我在 2020 年 10 月 13 日收到了我希望插入的新数据。
print(new.df)
date price Value2
2020-10-12 56 AAPL
2020-10-12 92 MSFT
我做的第一件事是从我的数据库中删除日期“2020-10-13”,然后尝试插入新信息。
con$remove(
query = '{"date" : "2020-10-12"}'
)
con$insert(
new.df
)
Error: E11000 duplicate key error collection: timeSeries.patimeseries index: _id_ dup key: { _id: "5fb69a960438522a0631cca2" }
最佳答案
看起来您正在删除数据而不是数据上的索引。由于日期数据被索引为 _id,因此无法删除。 (请参阅 https://api.mongodb.com/wiki/current/Indexes.html#Indexes-The%5CidIndex )您是否尝试使用更新查询,而不是尝试删除条目并在其位置创建新条目?
con$update('{"date" : "2020-10-13"}', '{"$set":{"price": 56}}')
见
https://jeroen.github.io/mongolite/manipulate-data.html#update-upsert用于文档。
upsert = TRUE
如果没有找到匹配的记录,则执行插入。
library(rjson)
x <- split(df, 1:nrow(df))
json_strings <- lapply(x, toJSON)
在此示例中,每个 json 将由作为键的列名称和作为对应值的一行数据组成,因此您可以循环执行以下操作:
for (val in 1:length(df$date))
{
this_date <- df$date[val]
date_query <- paste('{"date" : ', as.character(this_date), '}')
set_query <- paste('{"$set":', json_strings[val], '}')
con$update(date_query, set_query)
}
可能有一种更干净的方法来完成所有这些。例如,您可以重构以消除循环,然后使用
dplyr
动词(例如mutate)来构造json字符串,但其思想是根据数据帧中的数据生成json字符串,并动态执行更新查询。
关于r - 使用 mongolite R 将数据框附加到现有集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64917167/
数据 这里我使用 mongolite 将虚拟数据插入测试 mongodb 数据库: library(mongolite) ## create dummy data df df id region
为了将数据保存到 mongodb(使用来自 CRAN 的 mongolite 包),我定义了以下函数: saveData mat.answers var1 var2 var3 var4 va
题 使用mongolite中的R包,如何查询给定日期的数据库? 示例数据 考虑具有两个条目的test集合 library(mongolite) ## create dummy data df df
您好,我正在尝试使用 mongolite 包更新 mongodb 中的集合,但我无法弄清楚为什么我的查询失败(谷歌没有帮助)。 我正尝试运行更新命令,但我收到错误消息,提示时间戳无效: files$u
我有一个已经加载到 mongodb 的股票数据框。随着新信息的出现,我正在尝试添加每个新行是不同日期的行。但是,当我尝试插入我的新数据框时,我收到此错误:错误:E11000 重复键错误集合:timeS
是否有办法关闭 mongolite R 包发送的 Mongo 消息?我尝试在 mongo() 函数中设置 verbose = FALSE,但这对这些消息没有任何影响。源代码引用了 log_level,
我想在 Shiny 的响应式(Reactive)上下文中运行 mongolite 查询。数据库连接参数是预先加载的,下面未显示。 (注意:loadData 函数出现在第一个代码块中)。该查询在响应式(
我正在使用 mongolite 包从 MongoDB 连接和检索数据。 如何在 mongolite 查找查询中传递值 ##connecting mongodb library(mongolite) m
我正在使用 R mongolite 在具有以下结构的 mongo 集合中读写: [{_id: 1, name: a, sites: [ {ref: site_a1}, {ref: site_a
我正在尝试查询我的数据库 ratingsChoices= m$distinct({'answers'}) 但我收到了一个警告:错误:明显太大,16mb 上限 在 mongolite 中有解决这个错误的
我现在正在学习 mongolite/mongoDB,遇到了这个: https://cran.r-project.org/web/packages/mongolite/vignettes/intro.h
我使用 R 并尝试使用最新的“Mongolite”。但是我无法连接到 MongoDB 服务器。该手册明确指出以下内容: mongo(collection = "test", db = "test",
尝试与令人敬畏的 mongolite 库进行正则表达式匹配,但我仍然不确定我做错了什么,我真的很想知道我在这里错过了什么。 library(mongolite) m <- mongo(url = "m
我的 mongodb 集合中有一个这样的 json 文档:更新文档: { "_id" : ObjectId("59da4aef8c5d757027a5a614"), "input" : "hi", "
我可以从我的 mongoDB 实例中成功检索数据,但需要为依赖查询重新使用 objectID。 下面的代码似乎得到了我的整个对象,但没有得到 id。我错过了什么? # Perform a query
我有一个 mongo 数据库,其中包含我传递给一些 R 脚本进行分析的信息。我目前正在使用 mongolite 包将信息从 mongo 传递到 R。 我在每个 mongo 条目中都有一个名为 chec
使用 mongolite v0.9.1 (R) 和 MongoDB v3.4,我想加入两个集合,第一个,包含 ObjectId 的父集合,第二个,包含父字符串值的子集合' 对象 ID。 这是基本语法:
我有自己的 AWS DocumentDB,我正在尝试使用 Mongolite 包在 R 中连接到它 我尝试用 mongolite ssl_options 做到这一点使用此代码: mong Error
您好,我正在尝试插入日期,但它只作为字符串。 mongo$update(query = paste0('{"_id": ', c, ' }'), update = paste0('{"$addToSe
在 R 中有很多用于处理 MongoDB 的包。我开始使用“mongolite”包,因为我使用“jsonlite”和“mongolite”构建在“jsonlite”之上。但是,我有点疑惑,为什么'mo
我是一名优秀的程序员,十分优秀!