如何在MongoDB文档中更新与条件匹配的Array元素?

如何在MongoDB文档中更新与条件匹配的Array元素?

我有一个带有数组字段的文档,类似于以下内容:

{ 
  "_id" : "....",
  "Statuses" : [
    { "Type" : 1, "Timestamp" : ISODate(...) },
    { "Type" : 2, "Timestamp" : ISODate(...) },
    //Etc. etc.
  ]}

如何通过指定特定状态项的Type值来更新其时间戳?


有只小跳蛙
浏览 653回答 1
1回答

手掌心

在MongoDBshell中,您可以通过db.your_collection.update(     { _id: ObjectId("your_objectid"), "Statuses.Type": 1 },     { $set: { "Statuses.$.Timestamp": "new timestamp" } })所以c#等价物var query = Query.And(     Query.EQ("_id", "your_doc_id"),     Query.EQ("Statuses.Type", 1));var result = your_collection.Update(      query,      Update.Set("Statuses.$.Timestamp", "new timestamp", UpdateFlags.Multi,SafeMode.True));这将更新特定的文档,如果要更新整个集合,可以删除_id筛选器。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

MongoDB