当前位置: 首页 > 知识库问答 >
问题:

如何在mongo查询中为数组添加键值对[重复]

祁星阑
2023-03-14

我不同意将键值对添加到具有相同名称的数组中。有没有办法根据索引添加?

我试着在搜索查询中找到关键字,这很管用。但更新会将其添加到文档的底部

db.getCollection('siteLog').updateOne(
{
    'site':'test1',
    'items.suspiciousActivity.source': 'Account Added to Admin Group'
},
    {$set:
        {'items.suspiciousActivity.source.Account Added to Admin Group' : 'summary':'test1'}
     })
"items" : [ 
        {
            "suspiciousActivity" : {
                "source" : "Account Added to Admin Group",
                "count" : "2",
                "summary" : "Test summary for this"
            }
        }, 
        {
            "suspiciousActivity" : {
                "source" : "Palo Alto FW - Local Account Login",
                "count" : "2",
                "summary" : "Another test summary"
            }
        }, 
        {
            "suspiciousActivity" : {
                "source" : "Suspicious Failed Logon Attempts",
                "count" : "2",
                "summary": "more summaries"
            }
        }, 

共有1个答案

邰德业
2023-03-14

您需要使用$获得正确的items索引,如下所示:

db.getCollection('siteLog').updateOne({
    'site': 'test1',
    'items.suspiciousActivity.source': 'Account Added to Admin Group'
}, {
    $set: {
        'items.$.suspiciousActivity.summary': 'test1'
    }
})
 类似资料:
  • JavaScript 是否有一个优雅的机制来确定“key1”是否存在? 换句话说,这是一种比遍历所有数组元素并检查每一个更好的机制。

  • 我有如下要求。 从UI获取place子句作为字符串,任何选项都可以在Spring Boot中的place子句中添加字符串以查询mongo DB 例如:(eventType以“asdf”和age开头 在sql中,我们可以添加where子句,但不确定如何在mongoDB的springboot中做到这一点 注意:字符串是动态的,没有特定的模式。括号可以嵌套。Spring防尘套前端角度和维修 提前感谢

  • 给定集合"foo",我们有字段"bar",看起来像这样: 如何查询字段“bar”上满足以下条件的所有“foo”:[14,18]中的“uid”=2和“mid”

  • 输入: 输出: 输入: 线程“main”java.lang.IllegalStateException中的异常:重复键-1.0 我怎么才能修好这个?

  • 我使用作为sql选择。现在有了要转换为QueryDSL的本机查询。它由括号中的两个OR语句组成,后跟一个应用于两个OR部分的and和查询。 我需要以下内容: 在querydsl中,我可以编写以下示例:

  • 我要转换如下所示的对象: 键值对的数组,如下所示: 如何在JavaScript中将对象转换为键值对数组?