gpt4 book ai didi

mongodb - 使用唯一 ID 更新数组中的项目

转载 作者:可可西里 更新时间:2023-11-01 10:00:38 25 4
gpt4 key购买 nike

我有这样的文档结构:

Content {
_id: "mongoId"
Title: "Test",
Age: "5",
Peers: [{uniquePeer: "1", Name: "Testy Test", lastModified: "Never"}, {uniquePeer: "2", Name: "Test Tester", lastModified: "Never"}]

}

所以 Peers 是一个具有唯一标识符的数组。如何更新数组中其中一组的 lastModified?根据 mongodb,我只能使用文档的唯一 ID 更新文档,但这是在顶层。在本文档中,如何使用 1 的 uniquePeer 更新这组 Peers 中的 lastModified 字段?

编辑:

Content.update({"_id" : "mongoId", "Peers.uniquePeer" : "1"},{$set : {"Peers.$.lastModified" : "Now"}})

我仍然收到“不允许。不受信任的代码只能按 ID 更新文档。”

最佳答案

参见 docs用于更新数组。您的代码应类似于:

服务器

Meteor.methods({
'content.update.lastModified': function(contentId, peerId) {
check(contentId, String);
check(peerId, String);

var selector = {_id : id, 'Peers.uniquePeer': peerId};
var modifier = {$set: {'Peers.$.lastModified': 'Now'}};
Content.update(selector, modifier);
}
})

客户端

Meteor.call('content.update.lastModified', contentId, peerId);

请注意,这种操作需要在服务器定义的方法中进行,因为正如您所发现的,您只能在客户端通过 id 更新文档。

关于mongodb - 使用唯一 ID 更新数组中的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31796164/

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