所以我有一个使用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
}
我要做的是更新用户portfolio
上的foobar@baz.com
数组。但我不断收到以下错误:
2019-09-27T13:07:00.590-0500 E查询[js]语法错误:缺少}属性列表@(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
}
]
}
})
答案 0 :(得分:4)
plz尝试
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
}
]
}
})
答案 1 :(得分:1)
只需在每个项目后添加逗号:
portfolio: [
{
availableSupply: "1000000", // You missed these
currency: "SHIT", // You missed these
exchange: "Binance",
exchange_base: "btc",
marketCap: 10000,
name: "ShitCoin",
percentage: 100,
price: 0.01,
position: 1,
value: 0.01,
inWatchlist: false
}
]