首页 > 解决方案 > MongoDB:SyntaxError:属性列表后缺少}

问题描述

所以我有一个带有 Mongo 设置的基本测试数据库。以下是该users系列目前的样子:

{
    "_id" : ObjectId("5d8e23ed2f8849a57711e48e"),
    "firstName" : "Joe",
    "lastName" : "Black",
    "email" : "joeblack@gmail.com",
    "portfolio" : [ ],
    "watchlist" : [ ],
    "goals" : [ ],
    "badges" : [ ],
    "ranks" : [ ],
    "hasPortfolio" : false,
    "hasWatchlist" : false,
    "hasGoals" : false
}
{
    "_id" : ObjectId("5d8e23ed2f8849a57711e48f"),
    "firstName" : "Juan",
    "lastName" : "Gonzales",
    "email" : "juangonzales@outlook.com",
    "portfolio" : [ ],
    "watchlist" : [ ],
    "goals" : [ ],
    "badges" : [ ],
    "ranks" : [ ],
    "hasPortfolio" : false,
    "hasWatchlist" : false,
    "hasGoals" : false
}
{
    "_id" : ObjectId("5d8e338fe0562db42af793c9"),
    "firstName" : "Foo",
    "lastName" : "Bar",
    "email" : "foobar@baz.com",
    "portfolio" : [ ],
    "watchlist" : [ ],
    "goals" : [ ],
    "ranks" : [ ],
    "badges" : [
        {
            "name" : "Tester",
            "type" : "bronze",
            "new" : true
        }
    ],
    "hasPortfolio" : false,
    "hasWatchlist" : false,
    "hasGoals" : false
}

我想要做的是更新portfoliouser 上的数组foobar@baz.com。但我不断收到以下错误:

2019-09-27T13:07:00.590-0500 E QUERY [js] SyntaxError: missing } after property list @(shell):6:8

命令

db.users.update({email: 'foobar@baz.com'}, {
  $set: {
    portfolio: [
      {
        availableSupply: "1000000"
        currency: "SHIT"
        exchange: "Binance",
        exchange_base: "btc",
        marketCap: 10000,
        name: "ShitCoin",
        percentage: 100,
        price: 0.01,
        position: 1,
        value: 0.01,
        inWatchlist: false
      }
    ]
  }
})

在此处输入图像描述

标签: javascriptdatabasemongodb

解决方案


请试试这个

db.users.update({email: 'foobar@baz.com'}, {
  $set: {
    portfolio: [
      {
        availableSupply: "1000000",
        currency: "SHIT",
        exchange: "Binance",
        exchange_base: "btc",
        marketCap: 10000,
        name: "ShitCoin",
        percentage: 100,
        price: 0.01,
        position: 1,
        value: 0.01,
        inWatchlist: false
      }
    ]
  }
})

推荐阅读