MongoDB 批量新增記錄中不存在的欄位
阿新 • • 發佈:2019-02-19
MongoDB是基於分散式檔案儲存的資料庫,與關係型資料庫不同,記錄中的欄位數量可以各不相同。本文將介紹如何對MongoDB記錄中不存在的欄位進行批量新增並賦值。
MongoDB update方法
update() 方法用於更新已存在的文件,語法如下:
db.collection.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
}
)
引數說明:
query: update的查詢條件,類似sql update查詢內where後面的。
update: update的物件和一些更新的操作符,也可以理解為sql update查詢內set後面的。
upsert: 可選,這個引數的意思是,如果不存在update的記錄,是否插入objNew, true為插入,預設是false,不插入。
multi: 可選,mongodb預設是false,只更新找到的第一條記錄,如果這個引數為true,則更新所有按條件查出來的多條記錄。
writeConcern: 可選,丟擲異常的級別。
例項,批量新增記錄中不存在的欄位
1.建立測試資料庫
use testdb
db.createUser (
{
"user":"root",
"pwd":"123456",
"roles":[{"role" : "readWrite", "db":"testdb"}]
}
)
db.auth(
{
"user":"root",
"pwd":"123456"
}
)
2.插入測試資料,部分有is_auth,is_admin
db.member.insert([
{
"id" : 1,
"name" : "fdipzone",
"is_auth" : 1,
"is_admin" : 1
},
{
"id" : 2,
"name" : "tom",
"is_admin" : 1
},
{
"id" : 3,
"name" : "polly"
},
{
"id" : 4,
"name" : "anslem"
},
{
"id" : 5,
"name" : "terry",
"is_auth" : 1
}
])
查詢插入記錄
db.member.find();
{ "_id" : ObjectId("58eb8f83e352c5ee4b6db93a"), "id" : 1, "name" : "fdipzone", "is_auth" : 1, "is_admin" : 1 }
{ "_id" : ObjectId("58eb8f83e352c5ee4b6db93b"), "id" : 2, "name" : "tom", "is_admin" : 1 }
{ "_id" : ObjectId("58eb8f83e352c5ee4b6db93c"), "id" : 3, "name" : "polly" }
{ "_id" : ObjectId("58eb8f83e352c5ee4b6db93d"), "id" : 4, "name" : "anslem" }
{ "_id" : ObjectId("58eb8f83e352c5ee4b6db93e"), "id" : 5, "name" : "terry", "is_auth" : 1 }
3.對於不存在is_auth, is_admin欄位的記錄,批量插入is_auth, is_admin欄位,值為0。
批量插入is_auth:0
db.member.update(
{"is_auth" : {$exists : false}},
{"$set" : {"is_auth" : 0}},
false,
true
)
批量插入is_admin:0
db.member.update(
{"is_admin" : {$exists : false}},
{"$set" : {"is_admin" : 0}},
false,
true
)
插入後查詢,全部記錄都已經含有is_auth, is_admin欄位
db.member.find();
{ "_id" : ObjectId("58eb8f83e352c5ee4b6db93a"), "id" : 1, "name" : "fdipzone", "is_auth" : 1, "is_admin" : 1 }
{ "_id" : ObjectId("58eb8f83e352c5ee4b6db93b"), "id" : 2, "name" : "tom", "is_admin" : 1, "is_auth" : 0 }
{ "_id" : ObjectId("58eb8f83e352c5ee4b6db93c"), "id" : 3, "name" : "polly", "is_auth" : 0, "is_admin" : 0 }
{ "_id" : ObjectId("58eb8f83e352c5ee4b6db93d"), "id" : 4, "name" : "anslem", "is_auth" : 0, "is_admin" : 0 }
{ "_id" : ObjectId("58eb8f83e352c5ee4b6db93e"), "id" : 5, "name" : "terry", "is_auth" : 1, "is_admin" : 0 }