如何更新mongodb中的集合

时间:2016-10-01 19:03:04

标签: mongodb

我有一个插入我的mongo集合中的json。现在我想更新插入集合中的相同json,这样我需要使用id将新数据元素添加到该集合中早点生成。 例如:

{
 "name":"sam",
 "age":20,
  "_id":""5sq8uye1236g'
 }

如果上面是json什么插入到我们在集合中为它生成_id的集合中。 现在我有变量叫做token。

var token = 12345

现在我想更新上面的集合,以便根据该节点的_id添加此令牌。 集合中所需的格式

{
"name":"sam",
"age":20,
 "token":12345,
"_id":""5sq8uye1236g'
 } 

有人能帮助我吗? 感谢。

4 个答案:

答案 0 :(得分:2)

使用update命令。

您的查询应该是

db.collection.update({_id:'5sq8uye1236g'},{$set :{token :12345});

详细了解如何更新here

答案 1 :(得分:0)

db.<collection_name>.update(
   { _id: 5sq8uye1236g },
   { $set:
      {
        "token": "12345"
      }
   }
)

https://docs.mongodb.com/manual/reference/operator/update/set/

答案 2 :(得分:0)

截至 2020/2021 年,使用 ObjectId()

通过 Mongo 的 ID 更新时不能使用简单的字符串,需要使用 ObjectId。对于您的示例,假设您的 ObjectId 是 xxxxxxxxxxxxx

db.mycollection.update({_id:ObjectId('xxxxxxxxxxxxx')},{$set :{token:12345}})

我不能说哪个是最低版本,但我从 v4.2.2 开始测试过这个。

答案 3 :(得分:-1)

db.<collection_name>.update({"_id":"5sq8uye1236g"},{
                        "name":"sam",
                        "age":20,
                        "token":12345,
                        "_id":""5sq8uye1236g'
                            },{ upsert:true})

db.<collection_name>.update({"_id":"5sq8uye1236g"},{ $set :{"token":12345}})