我必须做一个非常复杂的查询,在这里提出问题之后,四处阅读并实现生活有时可能太短暂,我发现做我想做的最简单方法是从Mongo检索文档,在我的JavaScript应用程序中编辑响应并写回响应。举例说明:
{objectname: "name"
array: [
{
name: "jamesbond"
organisation: "007"
}
]}
我的JavaScript代码会在score
和name = "jamesbond"
organisation = "007"
字段
这一切都很好。但是,有时它不会将更改写入数据库,以澄清我正在检索文档,编辑响应然后调用
self.update({
objectname: "name"
}, {
$set: { "array": response.array }
})
由于某些我无法理解的原因,这并不总是写出更新。我只是不知道为什么。有时确实如此,有时却没有。我想知道它是否因为我正在编辑原始响应,我是否应该创建一个我写数据库的新对象?
我从以下链接的答案中了解到,.$.
运算符没有多大帮助,因为它返回数组中的第一个元素,因此我为什么要加载对象,编辑它并恢复它:
mongo add to nested array if entry does not contain two fields that match