gpt4 book ai didi

mongodb - 是否可以使用 $inc 通过 Mongoose 更新子文档?

转载 作者:可可西里 更新时间:2023-11-01 09:46:44 25 4
gpt4 key购买 nike

我有一个看起来像这样的文档:

{
"personName": "Some name",
"metaDetails": {
"visits": 1,
"otherMeta": 32
}
}

Node.js 使用 Mongoose。我想更新(或插入)访问次数。这是我到目前为止所拥有的。我读过 $ positional operator但我可能离题太远了:

updObj = {}
newKeyString = "metaDetails.$.visits"
updObj[newKeyString] = 1


Person.update {personName: "Some name}, {$inc: updObj}, {upsert: true}, (err, updRes) ->

然而,这似乎并没有实际更新或插入任何文档。有帮助吗?

编辑:添加模型

mongoose = require 'mongoose'

PersonSchema = new mongoose.Schema
personName:
type: String, index: true, unique: true
metaDetails: []

这是我的模型。 metaDetails 有意不在数组之外定义,因为其中的数据可能是高度可变的

最佳答案

为什么要将 $ 运算符放在另一个对象中。在 javascript 中,它会变成一个关联数组,但 $inc 接受它的等效字符串。

试试这个功能

Person.update {personName: "Some name"}, {$inc:  "metaDetails.$.visits" : 1 }, {upsert: true}, (err, updRes) ->

关于mongodb - 是否可以使用 $inc 通过 Mongoose 更新子文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8170992/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com