MongoDB创建\更新\删除文档操作
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MongoDB创建\更新\删除文档操作,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含6338字,纯文字阅读大概需要10分钟。
内容图文
一、插入\创建文档
--当插入一个不存在的文档时,会自己主动创建一个文档
[root@racdb ~]# mongo
MongoDB shell version: 2.4.14
connecting to: test
> show collections
> db.cols.insert({bar:"baz"})
> db.cols.find()
{ "_id" :ObjectId("56aac1df4e61b6d9f84d17e0"), "bar" :"baz" }
二、删除文档
--删除全部文档
> db.cols.remove()
--删除符合条件的文档
> db.cols.remove({bar:"baz"})
注意:db.cols.remove()不会删除cols集合本身,原有索引也会保留
三、更新文档
文档替换
--假设把以下文档
>db.users.findOne({"name":"licz"})
{
"_id" : ObjectId("56a8828b308203e00e436b01"),
"name" : "licz",
"friends" : 43,
"enemies" : 5
}
--更新成以下文档
{
"_id" : ObjectId("56a8828b308203e00e436b01"),
"relationships" : {
"friends" : 43,
"enemies" : 5
},
"username" : "licz"
}
更新方法:
> licz.relationships ={"friends":licz.friends,"enemies":licz.enemies}
{ "friends" : 43,"enemies" : 5 }
> licz.username = licz.name
licz
> delete licz.friends
true
> delete licz.enemies
true
> delete licz.name
true
>db.users.findOne({"name":"licz"})
{
"_id" : ObjectId("56a8828b308203e00e436b01"),
"name" : "licz",
"friends" : 43,
"enemies" : 5
}
>db.users.update({name:"licz"},licz)
>db.users.findOne({"username":"licz"})
{
"_id" : ObjectId("56a8828b308203e00e436b01"),
"relationships" : {
"friends" : 43,
"enemies" : 5
},
"username" : "licz"
}
使用改动器
1. $set
$set用来改动指定键的值,假设键不存在,就创建它。
>db.users.findOne({"name":"haley"})
{
"_id" : ObjectId("4b253b067525f35f94b60a31"),
"name" : "haley",
"age" : 30,
"sex" : "male"
}
--增加文档的键值对
> db.users.update({"name":"haley"},{"$set":{"location":"china"}})
> db.users.update({"name":"haley"},{"$set":{"favoritebook":"war and peace"}})
>db.users.findOne({"name":"haley"})
{
"_id" : ObjectId("4b253b067525f35f94b60a31"),
"name" : "haley",
"age" : 30,
"sex" : "male",
"location" : "china",
"favorite book" : "war and peace"
}
--改动"favoritebook"键的值
> db.users.update({"name":"haley"},{"$set":{"favoritebook":"green eggs and ham"}})
>db.users.findOne({"name":"haley"})
{
"_id" : ObjectId("4b253b067525f35f94b60a31"),
"name" : "haley",
"age" : 30,
"sex" : "male",
"location" : "china",
"favorite book" : "green eggs and ham"
}
2. $inc
$inc用来增加/降低文档中键的值,相同假设键不存在,就创建它
>db.analytics.findOne({"url":"www.example.com"})
{
"_id" : ObjectId("4b253b067525f35f94b60a31"),
"url" : "www.example.com",
"pageviews" : 54
}
>db.analytics.update({"url":"www.example.com"},{"$inc":{"pageviews":1}})
>db.analytics.findOne({"url":"www.example.com"})
{
"_id" : ObjectId("4b253b067525f35f94b60a31"),
"url" : "www.example.com",
"pageviews" : 55
}
--增加"visits"键值对
>db.analytics.update({"url":"www.example.com"},{"$inc":{"visits":3}})
>db.analytics.findOne({"url":"www.example.com"})
{
"_id" : ObjectId("4b253b067525f35f94b60a31"),
"url" : "www.example.com",
"pageviews" : 55,
"visits" : 3
}
注意:能够看$set和$inc改动器的差别:
$set是改动字符型的键值,$inc是改动数值型的键值;都是在不存在键时会自己主动增加上。
数据组改动器
3. $push
$push作用:假设指定的键存在,$push会向已有数组末尾增加一个元素,要是没有就会创建一个新的数据。
>db.blog.posts.findOne({"title":"A Oracle error summary"})
{
"_id" :ObjectId("56aad2744e61b6d9f84d17e1"),
"title" : "A Oracle error summary",
"content" : "..."
}
> db.blog.posts.update({"title":"AOracle error summary"},
...{"$push":{"comments":{"name":"licz","email":"licz@163.com","content":"goodpost!"}}})
>db.blog.posts.findOne({"title":"A Oracle error summary"})
{
"_id" : ObjectId("56aad2744e61b6d9f84d17e1"),
"title" : "A Oracle error summary",
"content" :"...",
"comments" : [
{
"name" :"licz",
"email" :"licz@163.com",
"content" :"good post!"
}
]
}
--再次加一个数据元素
... {"$push":{"comments":{"name":"haley","email":"haley@qq.com","content":"thankyou post"}}})
>db.blog.posts.findOne({"title":"A Oracle error summary"})
{
"_id" : ObjectId("56aad2744e61b6d9f84d17e1"),
"title" : "A Oracle error summary",
"content" : "...",
"comments" : [
{
"name" :"licz",
"email" :"licz@163.com",
"content" :"good post!"
},
{
"name" :"haley",
"email" :"haley@qq.com",
"content" :"thank you post"
}
]
}
4. $ne
$ne能够对键做一些推断,如:使用$ne和$push组,假设一个值不在数组里面就把他加进去,避免插入反复值
> db.papers.findOne()
{
"_id" : ObjectId("56aadaaa4e61b6d9f84d17e2"),
"title" : "People life",
"content" : "..."
}
>db.papers.update({"authorscited":{"$ne":"Richie"}},
...{"$push":{"authorscited":"Richie"}})
> db.papers.findOne()
{
"_id" : ObjectId("56aadaaa4e61b6d9f84d17e2"),
"title" : "People life",
"content" : "...",
"authors cited" : [
"Richie"
]
}
--再次增加相同元素,文档没有变化
> db.papers.update({"authorscited":{"$ne":"Richie"}},
...{"$push":{"authorscited":"Richie"}})
> db.papers.findOne()
{
"_id" : ObjectId("56aadaaa4e61b6d9f84d17e2"),
"title" : "People life",
"content" : "...",
"authors cited" : [
"Richie"
]
}
5. $addToSet
$addToSet作用:能够取代$ne和$push组全,在数组里增加一个元素且能增加多个元素,也能避免插入反复值
>db.users.findOne({"username":"licz"}
{
"_id" : ObjectId("56a8828b308203e00e436b01"),
"relationships" : {
"friends" : 43,
"enemies" : 5
},
"username" : "licz"
}
> db.users.update({"username":"licz"},{"$addToSet":{"email":"licz@163.com"}})
>db.users.findOne({"username":"licz"})
{
"_id" : ObjectId("56a8828b308203e00e436b01"),
"relationships" : {
"friends" : 43,
"enemies" : 5
},
"username" : "licz",
"email" : [
"licz@163.com"
]
}
--< 本文系统来源:http://www.cnblogs.com/zhchoutai/p/6979387.html
内容总结
以上是互联网集市为您收集整理的MongoDB创建\更新\删除文档操作全部内容,希望文章能够帮你解决MongoDB创建\更新\删除文档操作所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。