【发布时间】:2014-03-26 16:39:20
【问题描述】:
我想更改 MongoDB 中的文档。以下是相关文档结构的示例摘录:
{ values : { M1 : [[1395964800, 0.083434], ... , [1395964860, 0.043424]] } }
首先,键M1 包含一个数组数组。我必须搜索嵌套数组中的[0] 项(纪元时间,例如1395964800, 1395964860)。如何通过[0] 嵌套数组值查找文档?例如,我尝试过搜索:
db.myCollection.find({ "values" : { "M1" : [1395964800, 0.083434] } }).limit(1);
诚然,我预计这种方法会同时通过 [0] 嵌套数组值和[1] 嵌套数组值进行搜索。即使这样,这也不起作用,并且不返回任何结果(但不会出错)。
其次,如果这个 [0] 数组值已经存在(纪元时间),我想更新/覆盖该嵌套数组中的 [1] 元素(数据值)。如果 [0] 数组值在 M1 数组中不存在,我想将它(以及随附的数据值)添加到 M1 数组中。
我希望我会使用类似的东西:
db.collection("myCollection").findAndModify(
{ ........ }, // query
{ }, // sort
{ $set : { ... : ... }}, // set
{ upsert: true }, // insert if does not exist
function (err, result) {
(err) throw err
}
);
问题
- 如何按照描述进行搜索
- 如何按照说明进行更新
【问题讨论】:
标签: javascript mongodb