【发布时间】:2017-04-28 00:01:03
【问题描述】:
我有一本像这样的字典:
{
"username": "SHAURYA",
"stocks": [{
"name": "WXYZ",
"count": 2,
"price": 100
}, {
"name": "GOOG",
"count": 3,
"price": 300
}, {
"name": "QQV",
"count": 5,
"price": 300
}, {
"name": "AAPL",
"count": 6,
"price": 300
}, {
"name": "SN",
"count": 4,
"price": 300
}]
}
我需要能够更新单个股票以及向其中添加新股票。
如果我使用db.cmpe285.update({"username":username}, {"$push": {"stocks":{"name":stock_symbol,"count":allotment,"price":initial_share_price}}}) 命令,数据库不会更新。
如果我使用db.cmpe285.update({"username":username}, {"$set": {"stocks":{"name":stock_symbol,"count":allotment,"price":initial_share_price}}}) 命令,它将用新信息替换股票内的所有内容。
有什么方法可以更新现有记录,甚至添加一条新记录?
【问题讨论】: