不能使用部分(stats.cat3.detail.name的统计数据)来遍历元素。嵌套对象和数组

时间:2017-06-15 06:44:29

标签: javascript arrays node.js mongodb mongoose

我能够做到

db.getCollection('comps').find({"stats.cat3.detail.name" : "Friendlyness"})`

这显示了详细数组中名称为“Friendlyness”的正确文档。

我想将“友善”改为“友善”

我试过了:

db.getCollection('comps').update(
   {"stats.cat3.detail.name" : "Friendlyness"},
   {$set : {"stats.cat3.detail.name" : "Friendliness"} }
)

并且出现了类似的错误 “不能使用部分(stats.cat3.detail.name的统计数据)来遍历元素({stats:[{cat3:....”

我尝试在更新对象属性中放置位置运算符“$”。但仍然会出错。

示例数据:

{
    "_id" : ObjectId("58d94c441eb9e52454932db6"),
    "desc" : "Manufacturer of a wide range of consumer electronics products including audio, video, communications, and computer systems.",
    "source" : "alexa",
    "category" : "Consumer Electronics",
    "name" : "comp1.com",
    "__v" : 0,
    "stats" : [ 
        {
            "cat1" : {
                "detail" : [ 
                    {
                        "value" : [ 
                            {
                                "data" : 1,
                                "name" : "quick service"
                            }
                        ],
                        "name" : "Time on hold"
                    }, 
                    {
                        "value" : [ 
                            {
                                "data" : 1,
                                "name" : "some words but strong accent"
                            }, 
                            {
                                "data" : 1,
                                "name" : "EZ to understand"
                            }
                        ],
                        "name" : "Language fluency"
                    }, 
                    {
                        "value" : [ 
                            {
                                "data" : 1,
                                "name" : "Yes"
                            }
                        ],
                        "name" : "Human answered"
                    }, 
                    {
                        "value" : [ 
                            {
                                "data" : 2,
                                "name" : "Like a hot potato"
                            }, 
                            {
                                "data" : 1,
                                "name" : "1 or 2 times"
                            }
                        ],
                        "name" : "Transfered alot"
                    }, 
                    {
                        "value" : [ 
                            {
                                "data" : 3,
                                "name" : "ok time"
                            }, 
                            {
                                "data" : 1,
                                "name" : "quick service"
                            }, 
                            {
                                "data" : 1,
                                "name" : "short time"
                            }
                        ],
                        "name" : "Time on Hold"
                    }, 
                    {
                        "value" : [ 
                            {
                                "data" : 1,
                                "name" : "some word but strong accent"
                            }, 
                            {
                                "data" : 2,
                                "name" : "EZ to understand"
                            }
                        ],
                        "name" : "Language Fluency"
                    }, 
                    {
                        "value" : [ 
                            {
                                "data" : 2,
                                "name" : "Yes"
                            }
                        ],
                        "name" : "Human Answered"
                    }
                ],
                "average" : 81
            },
            "cat2" : {
                "detail" : [ 
                    {
                        "value" : [ 
                            {
                                "data" : 1,
                                "name" : "It was ok"
                            }, 
                            {
                                "data" : 1,
                                "name" : "Not EZ at all"
                            }, 
                            {
                                "data" : 7,
                                "name" : "there were hidden gimicks"
                            }, 
                            {
                                "data" : 2,
                                "name" : "It was OK"
                            }, 
                            {
                                "data" : 1,
                                "name" : "Found Quickly"
                            }
                        ],
                        "name" : "Easy to find desired product"
                    }, 
                    {
                        "value" : [ 
                            {
                                "data" : 1,
                                "name" : "Easy to understand"
                            }, 
                            {
                                "data" : 1,
                                "name" : "Eventually understood"
                            }
                        ],
                        "name" : "Clear information about the product"
                    }, 
                    {
                        "value" : [ 
                            {
                                "data" : 2,
                                "name" : "none"
                            }, 
                            {
                                "data" : 3,
                                "name" : "There was but won't complain"
                            }, 
                            {
                                "data" : 1,
                                "name" : "Very Bad"
                            }
                        ],
                        "name" : "Annoying popups"
                    }, 
                    {
                        "value" : [ 
                            {
                                "data" : 4,
                                "name" : "Eventually Understood"
                            }, 
                            {
                                "data" : 1,
                                "name" : "EZ to understand"
                            }
                        ],
                        "name" : "Clear data about the product"
                    }
                ],
                "average" : 71
            },
            "cat3" : {
                "detail" : [ 
                    {
                        "value" : [ 
                            {
                                "data" : 1,
                                "name" : "Very quick"
                            }
                        ],
                        "name" : "Prompteness"
                    }, 
                    {
                        "value" : [ 
                            {
                                "data" : 3,
                                "name" : "We're cool"
                            }, 
                            {
                                "data" : 4,
                                "name" : "They didn't like me"
                            }
                        ],
                        "name" : "Friendlyness"
                    }, 
                    {
                        "value" : [ 
                            {
                                "data" : 3,
                                "name" : "Very Confusing"
                            }, 
                            {
                                "data" : 2,
                                "name" : "Still a little confused"
                            }, 
                            {
                                "data" : 3,
                                "name" : "Enlightened"
                            }
                        ],
                        "name" : "Knowledge"
                    }, 
                    {
                        "value" : [ 
                            {
                                "data" : 3,
                                "name" : "On hold too many times"
                            }
                        ],
                        "name" : "Promptness"
                    }
                ],
                "average" : 69
            }

        }
    ]


}

0 个答案:

没有答案