项目介绍
我们拥有一个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();