真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

MongoDB中怎么實(shí)現(xiàn)一個(gè)更新函數(shù)-創(chuàng)新互聯(lián)

MongoDB中怎么實(shí)現(xiàn)一個(gè)更新函數(shù),很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。

創(chuàng)新互聯(lián)公司從2013年開(kāi)始,先為丹東等服務(wù)建站,丹東等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為丹東企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。


在MongoDB里面對(duì)于數(shù)據(jù)的更新操作提供了兩類(lèi)函數(shù):save()、update()

如果要修改數(shù)據(jù)最直接的使用函數(shù)就是update()函數(shù),但是這個(gè)函數(shù)的語(yǔ)法要求很麻煩。
語(yǔ)法:db.集合.update(更新條件,新的對(duì)象數(shù)據(jù)(更新操作符),upsert,multl)
  ● upsert:如果要更新的數(shù)據(jù)不存在,則增加一條新的內(nèi)容(true為增加,false為不增加)。
  ● multi:表示是否只更新滿足條件的第一行記錄,如果設(shè)置為false,只更新第一條,如果設(shè)置為true全更新。

范例:更新存在的數(shù)據(jù)---將年齡是30歲的薪水更新為8000(此時(shí)會(huì)返回多條數(shù)據(jù))
只更新第一條數(shù)據(jù):
> db.emp.find().skip(0).limit(5).sort({"$natural":1}).pretty();
{
        "_id" : ObjectId("599108423268c8e84253be26"),
        "name" : "趙一",
        "sex" : "男",
        "age" : 30,
        "sal" : 1000,
        "loc" : "北京"
}
{
        "_id" : ObjectId("599108423268c8e84253be27"),
        "name" : "錢(qián)二",
        "sex" : "女",
        "age" : 22,
        "sal" : 5000,
        "loc" : "上海"
}
{
        "_id" : ObjectId("599108423268c8e84253be28"),
        "name" : "孫三",
        "sex" : "男",
        "age" : 40,
        "sal" : 2000,
        "loc" : "深圳"
}
{
        "_id" : ObjectId("599108423268c8e84253be29"),
        "name" : "李四",
        "sex" : "女",
        "age" : 30,
        "sal" : 7000,
        "loc" : "北京"
}
{
        "_id" : ObjectId("599108423268c8e84253be2a"),
        "name" : "周五",
        "sex" : "女",
        "age" : 30,
        "sal" : 6400,
        "loc" : "北京"
}


> db.emp.update({"age":30},{"$set":{"sal":9999}},false,false);
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

> db.emp.find().skip(0).limit(5).sort({"$natural":1}).pretty();
{
        "_id" : ObjectId("599108423268c8e84253be26"),
        "name" : "趙一",
        "sex" : "男",
        "age" : 30,
        "sal" : 9999,
        "loc" : "北京"
}
{
        "_id" : ObjectId("599108423268c8e84253be27"),
        "name" : "錢(qián)二",
        "sex" : "女",
        "age" : 22,
        "sal" : 5000,
        "loc" : "上海"
}
{
        "_id" : ObjectId("599108423268c8e84253be28"),
        "name" : "孫三",
        "sex" : "男",
        "age" : 40,
        "sal" : 2000,
        "loc" : "深圳"
}
{
        "_id" : ObjectId("599108423268c8e84253be29"),
        "name" : "李四",
        "sex" : "女",
        "age" : 30,
        "sal" : 7000,
        "loc" : "北京"
}
{
        "_id" : ObjectId("599108423268c8e84253be2a"),
        "name" : "周五",
        "sex" : "女",
        "age" : 30,
        "sal" : 6400,
        "loc" : "北京"
}

所有滿足條件的數(shù)據(jù)都更新:
> db.emp.update({"age":30},{"$set":{"sal":9999}},false,true);
WriteResult({ "nMatched" : 5, "nUpserted" : 0, "nModified" : 4 })
> db.emp.find().skip(0).limit(5).sort({"$natural":1}).pretty();
{
        "_id" : ObjectId("599108423268c8e84253be26"),
        "name" : "趙一",
        "sex" : "男",
        "age" : 30,
        "sal" : 9999,
        "loc" : "北京"
}
{
        "_id" : ObjectId("599108423268c8e84253be27"),
        "name" : "錢(qián)二",
        "sex" : "女",
        "age" : 22,
        "sal" : 5000,
        "loc" : "上海"
}
{
        "_id" : ObjectId("599108423268c8e84253be28"),
        "name" : "孫三",
        "sex" : "男",
        "age" : 40,
        "sal" : 2000,
        "loc" : "深圳"
}
{
        "_id" : ObjectId("599108423268c8e84253be29"),
        "name" : "李四",
        "sex" : "女",
        "age" : 30,
        "sal" : 9999,
        "loc" : "北京"
}
{
        "_id" : ObjectId("599108423268c8e84253be2a"),
        "name" : "周五",
        "sex" : "女",
        "age" : 30,
        "sal" : 9999,
        "loc" : "北京"
}

范例:更新不存在的數(shù)據(jù)
> db.emp.update({"age":55},{"$set":{"name":"不存在"}},true,false);
WriteResult({
        "nMatched" : 0,
        "nUpserted" : 1,
        "nModified" : 0,
        "_id" : ObjectId("5991629aca6455d4a46870f6")
})
> db.emp.find({"age":55}).pretty();
{ "_id" : ObjectId("5991629aca6455d4a46870f6"), "age" : 55, "name" : "不存在" }

此時(shí)相當(dāng)于進(jìn)行了數(shù)據(jù)的創(chuàng)建。
那么除了update()之外,還提供了一個(gè)save()函數(shù),這個(gè)函數(shù)的功能與更新不存在的內(nèi)容相似。

范例:使用save()操作
> db.emp.find({"age":55}).pretty();
{ "_id" : ObjectId("5991629aca6455d4a46870f6"), "age" : 55, "name" : "不存在" }
> db.emp.save({"_id" : ObjectId("5991629aca6455d4a46870f6"),"age":56});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.emp.find({"age":56}).pretty();
{ "_id" : ObjectId("5991629aca6455d4a46870f6"), "age" : 56 }
> db.emp.save({"_id" : ObjectId("5991629aca6455d4a46870f6"),"age":56,"name":"stone"});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.emp.find({"age":56}).pretty();
{
        "_id" : ObjectId("5991629aca6455d4a46870f6"),
        "age" : 56,
        "name" : "stone"
}

使用save,只會(huì)保留在save中出現(xiàn)的字段。如果數(shù)據(jù)不存在,則插入。

> db.emp.save({"age":58,"name":"stone1"});
WriteResult({ "nInserted" : 1 })
> db.emp.find({"age":58}).pretty();
{
        "_id" : ObjectId("599164db0184ff511bf02b96"),
        "age" : 58,
        "name" : "stone1"
}

對(duì)應(yīng)的id數(shù)據(jù)存在了,就是更新操作。要保存的數(shù)據(jù)不存在(不能保存"_id"),就變成了增加操作。
建議使用update,盡量少用save。

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。


分享文章:MongoDB中怎么實(shí)現(xiàn)一個(gè)更新函數(shù)-創(chuàng)新互聯(lián)
網(wǎng)站鏈接:http://weahome.cn/article/hjppc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部