For nye varer
db.cmpe285.update({"username":username}, {"$push": {"stocks":{"name":stock_symbol,"count":allotment,"price":initial_share_price}}})
Til opdatering af eksisterende elementer , forudsat at du opdaterer tildeling. du skal bruge positional operator($) med matrixværdi, der refereres til i forespørgslen.
db.cmpe285.update({"username":username, "stocks.name":stock_symbol}, {"$set": {"stocks.$.count":allotment2}})
Til at ophæve elementer , det er en 2-trins proces. Du skal først køre forespørgslen på samme måde, som du gør for at opdatere eksisterende elementer som ovenfor, og inspicere skriveresultatsvaret fra ovenstående forespørgsel og kontrollere det ændrede antal. Hvis det ændrede antal er 0, betyder det, at vi skal ophæve, og så vil du bare gøre det som i tilfældet med at tilføje nye elementer.
db.cmpe285.update({"username":username, "stocks.name":stock_symbol}, {"$set": {"stocks.$.count":allotment2}})
Tjek WriteResult , hvis nmodificeret lig med 0.
db.cmpe285.update({"username":username}, {"$push": {"stocks":{"name":stock_symbol,"count":allotment2,"price":initial_share_price}}})
Hvis den nmodificerede er lig med 1, lykkedes det at upsertere.