如何将对象插入MongoDB

时间:2016-12-15 23:26:31

标签: node.js mongodb

所以我有一个使用字典的对象来存储用户在购物车应用程序中添加到购物车的产品。我正在采取的是对象并尝试插入到mongoDB中,运气不好。

我试图插入的数据如下所示:

products: '{"rJUg4uiGl":{"productPrice":"78.34","count":2},"BJ_7VOiGg":{"productPrice":"3","count":2}}' }

我尝试将其插入mongoDB的过程如下所示:

db.orders.insert("products":{"rJUg4uiGl":{"productPrice":"78.34","count":2},"BJ_7VOiGg":{"productPrice":"3","count":2}});

目前使用这种方法我收到以下错误:

2016-12-15T18:11:43.862-0500 E QUERY    [thread1] SyntaxError: missing ) after argument list @(shell):1:27

这意味着插入它会出现某种格式问题。我已经在很多地方移动了引号和括号,只是为了得到上述错误,或者来自mongoDB的响应意味着它正在等待我做更多事情来修复究竟导致错误的原因。

任何人都有机会帮助提供一些指导,以最佳方式将此对象存储在mongoDB中?

我的真实问题认为它应该与用于存储此数据格式的mongoose架构有关。我希望得到如何最初将它插入mongodb就足够了,但数据的保存方式让我有点困惑。我知道这是一个非常糟糕的问题,但是我可以为此设置我的架构吗?

"products" : {
    "rJUg4uiGl" : {
        "productPrice" : "78.34",
        "count" : 2
    },
    "BJ_7VOiGg" : {
        "productPrice" : "3",
        "count" : 2
    }
}

这是数据存储在mongo中时的样子。我认为让我对如何设置感到困惑的是" rJUg4uiGl"部分数据。我不确定如何看待mongoose模式。以下是我的一些不太好的尝试:

products: {
    productId: {
        productPrice: Number,
        count: Number
    }
}

以上根本不会在数据库中存储任何内容

products: {
    productId: [{
        productPrice: Number,
        count: Number
    }]
}

上面给出:

"products" : {
    "productId" : [ ]
}

同样,我知道这是非常具体的,但任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:0)

需要在{}

中包装您的插入数据

db.orders.insert({ “产品”:{ “rJUg4uiGl”:{ “productPrice”: “78.34”, “计数”:2}, “BJ_7VOiGg”:{ “productPrice”: “3”,“计“:2}}});