版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012314976/article/details/56847551
插入
db.student.insert({
"name":"zhangsan",
"age":18,
"gender":"male",
"favorites":[
"football",
"basketball"
]
})
结果
WriteResult({ "nInserted" : 1 })
更新
更新一条
db.collection.updateOne(<filter>, <update>, <options>)
更新多条
db.collection.updateMany(<filter>, <update>, <options>)
替换文档的整个内容,除了_id字段
db.collection.replaceOne(<filter>, <replacement>, <options>)
更新/替换
db.collection.update(<filter>, <update/replacment>, <options>)
updateOne
{ "_id" : ObjectId("58b0008852a845f562d12fe1"), "item" : "paper", "qty" : 100, "size" : { "h" : 8.5, "w" : 11, "uom" : "in" }, "status" : "D" }
更新命令
db.inventory.updateOne(
{ item: "paper" },
{
$set: { "size.uom": "cm", status: "P" }
}
)
更新结果
{ "_id" : ObjectId("58b0008852a845f562d12fe1"), "item" : "paper", "qty" : 100, "size" : { "h" : 8.5, "w" : 11, "uom" : "cm" }, "status" : "P" }
updateMany
{ "_id" : ObjectId("58b0008852a845f562d12fdd"), "item" : "journal", "qty" : 25, "size" : { "h" : 14, "w" : 21, "uom" : "cm" }, "status" : "A" }
{ "_id" : ObjectId("58b0008852a845f562d12fdf"), "item" : "mousepad", "qty" : 25, "size" : { "h" : 19, "w" : 22.85, "uom" : "cm" }, "status" : "P" }
{ "_id" : ObjectId("58b0008852a845f562d12fe3"), "item" : "postcard", "qty" : 45, "size" : { "h" : 10, "w" : 15.25, "uom" : "cm" }, "status" : "A" }
更新命令
db.inventory.updateMany(
{ "qty": { $lt: 50 } },
{
$set: { "size.uom": "in", status: "P" }
}
)
更新结果
{ "_id" : ObjectId("58b0008852a845f562d12fdd"), "item" : "journal", "qty" : 25, "size" : { "h" : 14, "w" : 21, "uom" : "in" }, "status" : "P" }
{ "_id" : ObjectId("58b0008852a845f562d12fdf"), "item" : "mousepad", "qty" : 25, "size" : { "h" : 19, "w" : 22.85, "uom" : "in" }, "status" : "P" }
{ "_id" : ObjectId("58b0008852a845f562d12fe3"), "item" : "postcard", "qty" : 45, "size" : { "h" : 10, "w" : 15.25, "uom" : "in" }, "status" : "P" }
replaceOne
{ "_id" : ObjectId("58b0008852a845f562d12fe1"), "item" : "paper", "qty" : 100, "size" : { "h" : 8.5, "w" : 11, "uom" : "cm" }, "status" : "P" }
更新命令
db.inventory.replaceOne(
{ item: "paper" },
{ item: "paper", instock: [ { warehouse: "A", qty: 60 }, { warehouse: "B", qty: 40 } ] }
)
更新结果
{ "_id" : ObjectId("58b0008852a845f562d12fe1"), "item" : "paper", "instock" : [ { "warehouse" : "A", "qty" : 60 }, { "warehouse" : "B", "qty" : 40 } ] }
删除
删除所有
db.inventory.deleteMany({})
删除所有
db.inventory.remove({})
根据条件删除多条
db.inventory.deleteMany({ status : "A" })
根据条件删除多条
db.inventory.remove( { status : "P" } )
删除1条
db.inventory.deleteOne( { status: "D" } )
删除1条
db.inventory.remove({ status: "D" }, 1)
查询
简单查询
select * from student;
> db.student.find()
{ "_id" : ObjectId("58afd88952a845f562d12fdb"), "name" : "zhangsan", "age" : 18, "gender" : "male", "favorites" : [ "football", "basketball" ] }
友好显示
> db.student.find().pretty()
{
"_id" : ObjectId("58afd88952a845f562d12fdb"),
"name" : "zhangsan",
"age" : 18,
"gender" : "male",
"favorites" : [
"football",
"basketball"
]
}
选择若干字段显示,并按照列倒序排列。其中1表示升序排列,-1表示降序排列。
select vote_num,title from book_info order by vote_num desc limit 10;
> db.book_info.find({},{"vote_num":1,"title":1}).sort({"vote_num":-1}).limit(10)
{ "_id" : ObjectId("58afd690e138236112ede4aa"), "title" : "追风筝的人", "vote_num" : 247079 }
{ "_id" : ObjectId("58afd695e138236112ede4f7"), "title" : "小王子", "vote_num" : 210926 }
{ "_id" : ObjectId("58afd694e138236112ede4ec"), "title" : "围城", "vote_num" : 179228 }
{ "_id" : ObjectId("58afd697e138236112ede515"), "title" : "白夜行", "vote_num" : 172310 }
{ "_id" : ObjectId("58afd690e138236112ede49e"), "title" : "解忧杂货店", "vote_num" : 166469 }
{ "_id" : ObjectId("58afd6d4e138236112ede955"), "title" : "梦里花落知多少", "vote_num" : 142771 }
{ "_id" : ObjectId("58afd695e138236112ede4f2"), "title" : "不能承受的生命之轻", "vote_num" : 129771 }
{ "_id" : ObjectId("58aff15de138236112efdd1c"), "title" : "三体", "vote_num" : 125780 }
{ "_id" : ObjectId("58afd69ce138236112ede56c"), "title" : "达·芬奇密码", "vote_num" : 123163 }
{ "_id" : ObjectId("58afd69be138236112ede568"), "title" : "活着", "vote_num" : 119525 }
select title,vote_num from book_info where title=’三体’;
> db.book_info.find({"title":"三体"},{"vote_num":1,"title":1}).limit(10)
{ "_id" : ObjectId("58aff15de138236112efdd1c"), "title" : "三体", "vote_num" : 125780 }
{ "_id" : ObjectId("58aff4eee138236112f01980"), "title" : "三体", "vote_num" : 51 }
select title,vote_num from book_info where vote_num<100 limit 5;
> db.book_info.find({"vote_num":{$lt:100}},{"vote_num":1,"title":1}).limit(5)
{ "_id" : ObjectId("58afd68fe138236112ede49d"), "title" : "酝酿之道", "vote_num" : 32 }
{ "_id" : ObjectId("58afd690e138236112ede49f"), "title" : "小津安二郎美食三昧", "vote_num" : 18 }
{ "_id" : ObjectId("58afd690e138236112ede4a0"), "title" : "活着回来的男人", "vote_num" : 0 }
{ "_id" : ObjectId("58afd690e138236112ede4a1"), "title" : "果壳里的一百五十九个宇宙", "vote_num" : 14 }
{ "_id" : ObjectId("58afd690e138236112ede4a5"), "title" : "七海游侠:盐海传奇", "vote_num" : 0 }
select title,vote_num from book_info where title like ‘%三体%’;
扫描二维码关注公众号,回复:
3115378 查看本文章
> db.book_info.find({"title":/三体/},{"vote_num":1,"title":1}).limit(10)
{ "_id" : ObjectId("58afd7cae138236112edfb0e"), "title" : "<三体>导读", "vote_num" : 47 }
{ "_id" : ObjectId("58afec5de138236112ef8419"), "title" : "魏三体石经古文辑证", "vote_num" : 0 }
{ "_id" : ObjectId("58aff15de138236112efdd1c"), "title" : "三体", "vote_num" : 125780 }
{ "_id" : ObjectId("58aff4c1e138236112f016dc"), "title" : "《三体》中的物理学", "vote_num" : 341 }
{ "_id" : ObjectId("58aff4eee138236112f01980"), "title" : "三体", "vote_num" : 51 }
{ "_id" : ObjectId("58aff4eee138236112f01981"), "title" : "三体2", "vote_num" : 662 }
{ "_id" : ObjectId("58aff4eee138236112f01982"), "title" : "三体3", "vote_num" : 455 }
模糊查询操作其实是用正则表达式完成的
> db.book_info.find({"title":/三体\d+/},{"vote_num":1,"title":1}).limit(10)
{ "_id" : ObjectId("58aff4eee138236112f01981"), "title" : "三体2", "vote_num" : 662 }
{ "_id" : ObjectId("58aff4eee138236112f01982"), "title" : "三体3", "vote_num" : 455 }
select * from book_info limit 0,5;
select * from book_info limit 5,5;
> db.book_info.find({},{"vote_num":1,"title":1}).limit(5)
{ "_id" : ObjectId("58afd68fe138236112ede49b"), "title" : "一个陌生女人的来信", "vote_num" : 38478 }
{ "_id" : ObjectId("58afd68fe138236112ede49c"), "title" : "猎豹", "vote_num" : 598 }
{ "_id" : ObjectId("58afd68fe138236112ede49d"), "title" : "酝酿之道", "vote_num" : 32 }
{ "_id" : ObjectId("58afd690e138236112ede49e"), "title" : "解忧杂货店", "vote_num" : 166469 }
{ "_id" : ObjectId("58afd690e138236112ede49f"), "title" : "小津安二郎美食三昧", "vote_num" : 18 }
> db.book_info.find({},{"vote_num":1,"title":1}).limit(5).skip(5)
{ "_id" : ObjectId("58afd690e138236112ede4a0"), "title" : "活着回来的男人", "vote_num" : 0 }
{ "_id" : ObjectId("58afd690e138236112ede4a1"), "title" : "果壳里的一百五十九个宇宙", "vote_num" : 14 }
{ "_id" : ObjectId("58afd690e138236112ede4a2"), "title" : "直到那一天", "vote_num" : 319 }
{ "_id" : ObjectId("58afd690e138236112ede4a3"), "title" : "夜色人生", "vote_num" : 837 }
{ "_id" : ObjectId("58afd690e138236112ede4a4"), "title" : "寂然的狂喜", "vote_num" : 119 }
删除collection
db.collection_name.drop()
备份与恢复
备份数据库
mongodump –db=db_name
备份collection
mongodump –db=db_name –collection=collection_name
恢复数据库
mongorestore dump/
附录
比较查询操作符列表
- $eq 等于
{ <field>: { $eq: <value> } }
- $ne 不等于
{field: {$ne: value} }
- $gt 大于
{field: {$gt: value} }
- $gte 大于等于
{field: {$gte: value} }
- $lt 小于
{field: {$lt: value} }
- $lte 小于等于
{ field: { $lte: value} }
- $in 在集合内
{ field: { $in: [<value1>, <value2>, ... <valueN> ] } }
- $nin 不在集合内
{ field: { $nin: [ <value1>, <value2> ... <valueN> ]} }
逻辑查询操作符列表
- $or 或
{ $or: [ { <expression1> }, { <expression2> }, ... , { <expressionN> } ] }
- $and 且
{ $and: [ { <expression1> }, { <expression2> } , ... , { <expressionN> } ] }
- $not 非
{ field: { $not: { <operator-expression> } } }
- $nor 异或
{ $nor: [ { <expression1> }, { <expression2> }, ... { <expressionN> } ] }
元素查询操作符列表
- $exists 是否存在某个字段
{ field: { $exists: <boolean> } }
- $type 是否是某个变量类型
{ field: { $type: <BSON type number> | <String alias> } }
详情参考https://docs.mongodb.com/manual/reference/operator/query/type/