MongoDB中的数据操作项目练习

本文详细介绍了如何在MongoDB中进行数据操作,包括新书插入、更新文档、删除记录等实战步骤。通过bookshop.js示例,学习了如何添加、修改和删除图书信息,涉及PL/SQL、NoSQL等关键字,价格调整,字段重命名,以及使用查询和更新操作技巧。
摘要由CSDN通过智能技术生成

Data manipulations in MongoDB

项目介绍

我们拥有一个bookshop.js的文件,将文件导入的MongoDB后按照要求数据操作工作。

练习用的bookshop.js已被上传到我的资源。

项目开始

首先要创建一个文件夹来进行项目,之后启动MongoDB,最后读取文件:

mkdir DATA

mongod –dbpath DATA –port 4000

mongo –port 4000

load("bookshop.js");

(1) 在 bookshop中插入一本新书的信息。所有属性的值由您决定。以漂亮的格式显示新书信息。

db.bookshop.insert( {
	"_id":"666.66.66",
	"book": {
		"callnum":"666.66.66",
		"isbn":"6-666-666-666",
		"title":"A Song of Ice and Fire",
		"authors":[
			{
				"fname":" George ",
				"lname":"Martin"}
		],
		"publisher":"PH Pty Ltd",
		"year":1996,
		"price":150.90,
		"topic":"Novels",
		"description":"A series of epic fantasy novels"
	}
});

db.bookshop.find({"book.title":"A Song of Ice and Fire"}).pretty();

(2) 在一本书的文档中插入两个新的关键字PL/SQL和NoSQL,显示图书标题和关键字。

db.bookshop.update({"book.title":"Database Systems"},
					{"$push":{"keywords":{"PL/SQL","NoSQL"}}});
db.bookshop.find("book.title":"Database Systems",{"_id":0,"book.title":1,"book.keywords":1});

(3) 为一本isbn为1-123-456-810的书插入一个新的作家哈利·波特。以漂亮的格式显示书籍的isbn,标题和作者的信息。

db.bookshop.update({"book.isbn":"1-123-456-810"},
					{"$push":{"authors":{"fname":"Harry","lname":" Potter"}}});
db.bookshop.find("book.isbn":"1-123-456-810",{"_id":0,"book.isbn":1,"book.title":1,"book.authors":1}).pretty();

(4) 把书名叫做数据库系统的一本书的价格降低20%,以漂亮的格式显示书名和价格。

db.bookshop.update({"book.title":"Database Systems"},
					{"$mul":{"book.price":0.8}});
db.bookshop.find("book.title":"Database Systems",{"_id":0,"book.title":1,"book.price":1}).pretty();      

(5) 将图书中的关键字 year重命名为publication year,显示所有书籍的标题,出版商和出版年份。

dbbookshop.update({"book":{"$exists":true}},
				{"$rename":{"book.year":"book.publication year"}});
db.bookshop.find({"book":{"$exists":true}},{"_id":0,"book.title":1,"book.publisher":1,"book.publication year":1});         

(6) 对于标题为Algorithms 且价格为65.85的一本书,将主题的值更改为Information Technology,以漂亮的格式显示书的isbn,标题,价格和主题。

dbbookshop.update({"$and":[{"book.title":"Algorithms"},{"book.price":65.85}]},
						  {"$set":{"book.topic":"Information Technology"}});
dbbookshop.find({"$and":[{"book.title":"Algorithms"},{"book.price":65.85}]},
						 {"_id":0,"book.isbn":1,"book.title":1,"book.price":1,"book.topic":1}).pretty();

(7) 从一本callnum为123.45.67的书中删除作家詹姆斯·邦德,以漂亮的格式显示书名和作者。

db.bookshop.update({"book.callnum":"123.45.67"},
					{"$pull":{"authors":{"fname":"James","lname":"Bond"}}});
db.bookshop.find("book.callnum":"123.45.67",{"_id":0,"book.title":1,"book.authors":1}).pretty();   

(8) 从数据库中删除与问题(1)中插入的一本书有关的信息。

db.bookshop.remove({"book.title":"A Song of Ice and Fire"});

(9) 从数据库中删除isbn为1-213-431-770的一本书的描述信息, 以漂亮的格式显示图书信息。

db.bookshop.update({"book.isbn":"1-213-431-770"},
					{"$unset":{"description":null}});
db.bookshop.find("book.isbn":"1-213-431-770").pretty();   

(10) 从数据库中删除有关所有杂志的信息,显示数据库中还剩下多少描述杂志的文档。

dbbookshop.remove({"magazine":{"$exists":true}});
db.bookshop.find({"magazine":{"$exists":true}}).count();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值