make mongoDB用string替换单值数组

时间:2015-08-08 15:58:10

标签: javascript node.js mongodb loopbackjs

我对mongoDB很新,我正在尝试将对象插入数据库。 (哇,比mySQL更有趣......)我使用的是strongloop的环回框架及其mongoDB连接器。

该对象是我收到的xml2js解析的xml消息,在解析并插入mongo后,它看起来像这样:

{
    "_id": ObjectID("55c61ee9391da88435c5753f"),
    "offerChange": [
        {
            "foo": [
                "bar"
            ],
            "baz": [
                "foo"
            ]
        }
    ] 
}

如您所见,所有键的值都是数组,尽管它们只包含一个值。显然我可以在插入之前或在xml解析期间将它们转换为字符串,但是这需要在所有对象的键上循环或者首先为工作者做更多的工作,这是我想要避免的。真实物体比上面显示的要大得多。

有没有办法告诉mongoDB在创建文档之前或之后自动将只有一个值的数组转换为字符串?

1 个答案:

答案 0 :(得分:1)

您无需在应用程序/数据库中循环并从数组转换为字符串。如果只有一个项目,则xml2js提供一种返回字符串的简洁方法,如果有更多项目,则提供数组。

  

explicitArray(默认值:true):始终将子节点放在数组中   真正;否则只有在有多个数组时才会创建数组。

按如下方式启动解析器

parseString(xml, {explicitArray: false}, function (err, result) {
});