1.【原創】MongoDB的基本CRUD操作

MongoDB的基本操作

一、常用操作

//查看所有數據庫
show dbs;
//選中庫
use s10;
//顯示所有集合
show collections;
//創建student集合
db.createCollection("student");
//刪除tb_person集合
db.tb_person.drop();
//刪除所有數據庫:不會刪除默認的admin、config、local數據庫
db.dropDatabase();

二、插入操作(insert)

1.1.db.collection.insertOne();

將一個文檔插入一個集合中。

//插入一個文檔到一個集合,語義更加明確,ver3.2以上版本才支持
db.tb_person.insert({"name":"nick","age":28,"sex":1});
1.2.db.collection.insertMany();

將多個文檔插入一個集合中。

//插入多個文檔到一個集合,語義更加明確,ver3.2以上版本才支持
db.tb_person.insert([
	{"_id":"2","name":"nick1","age":32,"sex":1},
	{"name":"nick2","age":33,"sex":1},
	{"name":"nick3","age":34,"sex":1}
]);
1.3.db.collection.insert();

插入一個或多個文檔插入到一個集合中。

  • 每插入一個文案,不指定"_id"值,MongoDB則會自動生成該條數據的唯一標識。
1.3.1.插入一個文檔
//插入一個文檔到一個集合
db.tb_person.insert({"name":"nick","age":28,"sex":1});
1.3.2.插入多個文檔到一個集合

"_id"值生成時調用了ObjectId();方法生成,也可手動調用該方法生成。

//插入多個文檔到一個集合,不指定"_id"值,MongoDB則會自動生成該條數據的唯一標識
db.tb_person.insert([
	{"_id":"1","name":"nick1","age":29,"sex":1},
	{"name":"nick2","age":30,"sex":1},
	{"name":"nick3","age":31,"sex":1}
]);

三、刪除操作(delete)

3.1.db.collection.deleteOne();
  • 版本3.4以後才支持
//相當於remove();方法指定了<justOne>參數,默認刪除最先存入的一個
db.tb_person.deleteOne({});
//相當於remove();方法指定了<justOne>參數,默認刪除匹配條件且最先存入的一個
db.tb_person.deleteOne({"age":31});
3.2.db.collection.deleteMany();
//刪除多個
db.tb_person.deleteMany({"sex":1,"_id":"1"});
3.3.db.collection.remove();
/*條件必傳,指定條件刪除集合中的文檔,默認刪除匹配的多個,只刪除一個時,需要指定第二個參數<justOne>爲true,輸入條件時注意,如果文檔存入時使用了引號包裹,刪除時必須帶引號,否則匹配失敗*/
db.tb_person.remove({"_id":"1","name":"nick1"},true);
/*條件必傳,刪除集合中所有文檔,類似於清空集合的功能,但是是以先匹配再刪除的方式進行,所以效率較低*/
db.tb_person.remove({});
//傳入空條件時,<justOne>參數依然生效,默認刪除最先存入的一個
db.tb_person.remove({},true);
//如果要全部清空集合,可使用此方法直接刪除該集合
db.tb_person.drop();

四、修改操作(update)

//修改最早插入的一條,與update()默認狀態一致
db.tb_person.updateOne({"age":34},{$set:{"name":"tom","address":"江西","city":"九江"}});

//修改符合條件的多個文檔
db.tb_person.updateMany({"age":34},{$set:{"name":"tom","address":"江西","city":"景德鎮"}});

//更新符合條件的整個對象
db.tb_person.update({"age":33},{"name":"tom"});
//使用$set操作符更新最先插入的一條文檔的指定字段,沒有該字段則會添加
db.tb_person.update({"age":14},{$set:{"name":"tom","address":"江西"}});
//使用$unset操作符刪除最先插入的一條文檔的指定字段
db.tb_person.update({"age":14},{$unset:{"name":"tom","address":"江西","city":""}});
//配置multi屬性,更新多個,更多參數配置參照官網文檔
db.tb_person.update(
	{"age":34},
	{
		$set:{"address":"北京"}
	},
	{
		multi:true
	}
);
//替換最先插入的一個對象,更多參數配置參照官網文檔,ver3.2以上纔有
db.tb_person.replaceOne(
	{"age":34},
	{"age":34,"address":"天津"}
);
db.tb_person.find({"age":34});

五、查詢操作(query)

//查詢全部:返回list
db.tb_person.find();
//條件條件:返回list,不支持類似的嵌套查詢
db.tb_person.find({"name":"nick2","age":30,"hobby":["sleep"]});
//查詢最先插入的一條:返回文檔對昂
db.tb_person.findOne({"age":33});
//查詢最先插入的第二條:返回list
db.tb_person.find({"age":33})[1];
//查詢所有數量(常用)
db.tb_person.find({}).count();
//查詢所有數量
db.tb_person.find({}).length();
//查詢符合條件的數量
db.tb_person.find({"age":33}).count();
db.tb_person.find({"age":33}).length();
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章