mongodb文档管理

mongodb文档管理(查询 插入 更新文档 删除)

查询

插入

更新文档

删除

注意

集合不存在时创建集合,然后再插入记录

_id字段值已存在时,修改文档字段值

_id字段值不存在时,插入文档

Saveinsert区别

> db.c2.save({name:"bob",age:19})

WriteResult({ "nInserted" : 1 })

> db.c2.find()

{ "_id" : ObjectId("5b42d6c270fa73faab18ef23"), "name" : "bob", "age" : 19 }

> db.c2.save({_id:7,name:"bob2",age:19})

WriteResult({ "nMatched" : 0, "nUpserted" : 1, "nModified" : 0, "_id" : 7 })

> db.c2.find()

{ "_id" : ObjectId("5b42d6c270fa73faab18ef23"), "name" : "bob", "age" : 19 }

{ "_id" : 7, "name" : "bob2", "age" : 19 }

> db.c2.save({_id:7,name:"tom"})

WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

> db.c2.find()

{ "_id" : ObjectId("5b42d6c270fa73faab18ef23"), "name" : "bob", "age" : 19 }

{ "_id" : 7, "name" : "tom" }

> db.c2.insert({_id:7,name:"tom"})

WriteResult({

"nInserted" : 0,

"writeError" : {

"code" : 11000,

"errmsg" : "E11000 duplicate key error collection: studb.c2 index: _id_ dup key: { : 7.0 }"

}

})

> db.c2.find()

{ "_id" : ObjectId("5b42d6c270fa73faab18ef23"), "name" : "bob", "age" : 19 }

{ "_id" : 7, "name" : "tom" }

> db.c2.insert({_id:17,name:"tom"})

WriteResult({ "nInserted" : 1 })

> db.c2.insert({_id:17,name:"tom"}{_id:23,name:"lucy"})

2018-07-09T11:35:38.661+0800 E QUERY    [thread1] SyntaxError: missing ) after argument list @(shell):1:32

> db.c2.save({_id:17,name:"tom"}{_id:23,name:"lucy"})

2018-07-09T11:35:47.109+0800 E QUERY    [thread1] SyntaxError: missing ) after argument list @(shell):1:30

> db.c6.insertMany(

... [

... {name:"zs",age:19,pay:25800},

... {name:"ls",school:"test"},

... ]

... )

{

"acknowledged" : true,

"insertedIds" : [

ObjectId("5b42da3770fa73faab18ef24"),

ObjectId("5b42da3770fa73faab18ef25")

]

}

> db.c6.find()

{ "_id" : ObjectId("5b42da3770fa73faab18ef24"), "name" : "zs", "age" : 19, "pay" : 25800 }

{ "_id" : ObjectId("5b42da3770fa73faab18ef25"), "name" : "ls", "school" : "test" }

查询语法

> db.c3.findOne()

{

"_id" : ObjectId("5b409025a0ae889363f8f26a"),

"name" : "yaya",

"password" : "x",

"uid" : 8888,

"gid" : 999,

"comment" : "teacher",

"homedir" : "/home/yaya",

"shell" : "/bin/bash"

}


条件uid=1

> db.c3.find({uid:1})

{ "_id" : ObjectId("5b409025a0ae889363f8f26c"), "name" : "bin", "password" : "x", "uid" : 1, "gid" : 1, "comment" : "bin", "homedir" : "/bin", "shell" : "/sbin/nologin" }

条件+   1显示 0不显示

> db.c3.find({uid:1})

{ "_id" : ObjectId("5b409025a0ae889363f8f26c"), "name" : "bin", "password" : "x", "uid" : 1, "gid" : 1, "comment" : "bin", "homedir" : "/bin", "shell" : "/sbin/nologin" }

> db.c3.find({uid:1},{name:1})

{ "_id" : ObjectId("5b409025a0ae889363f8f26c"), "name" : "bin" }

> db.c3.find({uid:1},{_id:0,name:1,uid:1})

{ "name" : "bin", "uid" : 1 }

> db.c3.find({uid:1},{_id:0,shell:0})  //uid=1  不显示_id,shell

{ "name" : "bin", "password" : "x", "uid" : 1, "gid" : 1, "comment" : "bin", "homedir" : "/bin" }

> db.c3.find().limit(3)

{ "_id" : ObjectId("5b409025a0ae889363f8f26a"), "name" : "yaya", "password" : "x", "uid" : 8888, "gid" : 999, "comment" : "teacher", "homedir" : "/home/yaya", "shell" : "/bin/bash" }

{ "_id" : ObjectId("5b409025a0ae889363f8f26b"), "name" : "root", "password" : "x", "uid" : 0, "gid" : 0, "comment" : "root", "homedir" : "/root", "shell" : "/bin/bash" }

{ "_id" : ObjectId("5b409025a0ae889363f8f26c"), "name" : "bin", "password" : "x", "uid" : 1, "gid" : 1, "comment" : "bin", "homedir" : "/bin", "shell" : "/sbin/nologin" }

> db.c6.find()

{ "_id" : ObjectId("5b42da3770fa73faab18ef24"), "name" : "zs", "age" : 19, "pay" : 25800 }

{ "_id" : ObjectId("5b42da3770fa73faab18ef25"), "name" : "ls", "school" : "test" }

> db.c1.find().skip(1)

{ "_id" : "ObjectId(5b403a4ad701a74e97d84580)", "name" : "bob" }


sort(字段名)


>db.c3.find({},{_id:0,name:1,uid:1}).sort({uid:1}) //{} 查询所有

{"name" : "root", "uid" : 0 }

{"name" : "bin", "uid" : 1 }

{"name" : "daemon", "uid" : 2 }

{"name" : "adm", "uid" : 3 }

{"name" : "lp", "uid" : 4 }

{"name" : "sync", "uid" : 5 }

{"name" : "shutdown", "uid" : 6 }

{"name" : "halt", "uid" : 7 }

{"name" : "mail", "uid" : 8 }

{"name" : "operator", "uid" : 11 }

{"name" : "games", "uid" : 12 }

{"name" : "ftp", "uid" : 14 }

{"name" : "mysql", "uid" : 27 }

{"name" : "rpcuser", "uid" : 29 }

{"name" : "rpc", "uid" : 32 }

{"name" : "ntp", "uid" : 38 }

{"name" : "gdm", "uid" : 42 }

{"name" : "apache", "uid" : 48 }

{"name" : "tss", "uid" : 59 }

{"name" : "avahi", "uid" : 70 }

Type"it" for more


>db.c3.find({},{_id:0,name:1,uid:1}).sort({uid:-1})

{"name" : "nfsnobody", "uid" : 65534 }

{"name" : "yaya", "uid" : 8888 }

{"name" : "nginx", "uid" : 1001 }

{"name" : "lisi", "uid" : 1000 }

{"name" : "polkitd", "uid" : 999 }

{"name" : "libstoragemgmt", "uid" : 998}

{"name" : "colord", "uid" : 997 }

{"name" : "saslauth", "uid" : 996 }

{"name" : "chrony", "uid" : 995 }

{"name" : "geoclue", "uid" : 994 }

{"name" : "setroubleshoot", "uid" : 993}

{"name" : "gnome-initial-setup", "uid" :992 }

{"name" : "systemd-network", "uid" : 192}

{"name" : "abrt", "uid" : 173 }

{"name" : "rtkit", "uid" : 172 }

{"name" : "pulse", "uid" : 171 }

{"name" : "usbmuxd", "uid" : 113 }

{"name" : "qemu", "uid" : 107 }

{"name" : "nobody", "uid" : 99 }

{"name" : "postfix", "uid" : 89 }

Type"it" for more

>


匹配条件

条件表示方式

>db.c3.find({name:"root"},{_id:0,name:1}) //匹配nameroot

{"name" : "root" }

>

>db.c3.find({name:"root",uid:0},{_id:0,name:1,uid:1}) //多个条件同时成立

{"name" : "root", "uid" : 0 }

>

范围内比较

$in

$nin

$or

>db.c3.find({uid:{$in:[1,6,9]}})

{"_id" : ObjectId("5b409025a0ae889363f8f26c"),"name" : "bin", "password" : "x","uid" : 1, "gid" : 1, "comment" :"bin", "homedir" : "/bin", "shell": "/sbin/nologin" }

{"_id" : ObjectId("5b409025a0ae889363f8f271"),"name" : "shutdown", "password" : "x","uid" : 6, "gid" : 0, "comment" :"shutdown", "homedir" : "/sbin","shell" : "/sbin/shutdown" }

>

>db.c3.find({uid:{$in:[1,6,9]}},{_id:0,uid:1})

{"uid" : 1 }

{"uid" : 6 }

>


>db.c3.find({name:{$in:["root","daemon","bin"]}})

{"_id" : ObjectId("5b409025a0ae889363f8f26b"),"name" : "root", "password" : "x","uid" : 0, "gid" : 0, "comment" :"root", "homedir" : "/root", "shell": "/bin/bash" }

{"_id" : ObjectId("5b409025a0ae889363f8f26c"),"name" : "bin", "password" : "x","uid" : 1, "gid" : 1, "comment" :"bin", "homedir" : "/bin", "shell": "/sbin/nologin" }

{"_id" : ObjectId("5b409025a0ae889363f8f26d"),"name" : "daemon", "password" : "x","uid" : 2, "gid" : 2, "comment" :"daemon", "homedir" : "/sbin", "shell": "/sbin/nologin" }

>



//匹配的条件:{name:{$in:["root","daemon","bin"]}}

//显示的字段:{_id:0,name:1}

//db.c3.find({条件},{字段})

>db.c3.find({name:{$in:["root","daemon","bin"]}},{_id:0,name:1})

{"name" : "root" }

{"name" : "bin" }

{"name" : "daemon" }

>


//$nin []为列表

>db.c3.find({shell:{$nin:["/bin/bash","/sbin/nologin"]}},{_id:0,name:1,shell:1})

{"name" : "sync", "shell" : "/bin/sync"}

{"name" : "shutdown", "shell" :"/sbin/shutdown" }

{"name" : "halt", "shell" : "/sbin/halt"}

{"name" : "mysql", "shell" :"/bin/false" }

>


$or

>db.c3.find({$or:[{name:"root"},{name:"mysql"}]},{_id:0,name:1})

{"name" : "root" }

{"name" : "mysql" }

>


匹配条件

正则匹配

db.c3.find({字段名:/正则表达式/},{显示的字段})

>db.c3.find({name:/^a/},{_id:0,name:1})

{"name" : "adm" }

{"name" : "abrt" }

{"name" : "avahi" }

{"name" : "apache" }

>db.c3.find({name:/^....$/},{_id:0,name:1})

{"name" : "yaya" }

{"name" : "root" }

{"name" : "sync" }

{"name" : "halt" }

{"name" : "mail" }

{"name" : "dbus" }

{"name" : "abrt" }

{"name" : "qemu" }

{"name" : "sshd" }

{"name" : "lisi" }

>

>db.c3.find({name:/..../},{_id:0,name:1}) //正则包含就可以

{"name" : "yaya" }

{"name" : "root" }

{"name" : "daemon" }

{"name" : "sync" }

{"name" : "shutdown" }

{"name" : "halt" }

{"name" : "mail" }

{"name" : "operator" }

{"name" : "games" }

{"name" : "nobody" }

{"name" : "systemd-network" }

{"name" : "dbus" }

{"name" : "polkitd" }

{"name" : "libstoragemgmt" }

{"name" : "colord" }

{"name" : "saslauth" }

{"name" : "abrt" }

{"name" : "rtkit" }

{"name" : "radvd" }

{"name" : "chrony" }

Type"it" for more

>


>db.c3.find({uid:3},{name:1,uid:1,_id:0})

{"name" : "adm", "uid" : 3 }

>

数值比较

$lt $lte $gt $gte $ne

< <= > >= !=

>db.c3.find({uid:{$gte:10,$lte:40}},{name:1,uid:1,_id:0}).sort({uid:1}).limit(1)

{"name" : "operator", "uid" : 11 }

>


匹配空值

>db.c3.save({name:null,uid:null})

WriteResult({"nInserted" : 1 })

>db.c3.find({name:null})

{"_id" : ObjectId("5b430a7670fa73faab18ef26"),"name" : null, "uid" : null }

>db.c3.find({gid:null},{_id:0}) //没有gid字段

{"name" : null, "uid" : null }

>


更新(修改文档列的值)

db.c3.update({条件},{修改的字段})

>db.c3.find({uid:{$lte:3}},{_id:0})

{"name" : "root", "password" : "x","uid" : 0, "gid" : 0, "comment" :"root", "homedir" : "/root", "shell": "/bin/bash" }

{"name" : "bin", "password" : "x","uid" : 1, "gid" : 1, "comment" :"bin", "homedir" : "/bin", "shell": "/sbin/nologin" }

{"name" : "daemon", "password" : "x","uid" : 2, "gid" : 2, "comment" :"daemon", "homedir" : "/sbin", "shell": "/sbin/nologin" }

{"name" : "adm", "password" : "x","uid" : 3, "gid" : 4, "comment" :"adm", "homedir" : "/var/adm", "shell": "/sbin/nologin" }

>


>db.c3.update({uid:{$lte:3}},{password:"AAA"}) //默认当条件成立时,会删除其他字段,只留下匹配字段

WriteResult({"nMatched" : 1, "nUpserted" : 0, "nModified": 1 })

>db.c3.find({uid:{$lte:3}},{_id:0})

{"name" : "bin", "password" : "x","uid" : 1, "gid" : 1, "comment" :"bin", "homedir" : "/bin", "shell": "/sbin/nologin" }

{"name" : "daemon", "password" : "x","uid" : 2, "gid" : 2, "comment" :"daemon", "homedir" : "/sbin", "shell": "/sbin/nologin" }

{"name" : "adm", "password" : "x","uid" : 3, "gid" : 4, "comment" :"adm", "homedir" : "/var/adm", "shell": "/sbin/nologin" }

>db.c3.find({password:"AAA"})

{"_id" : ObjectId("5b409025a0ae889363f8f26b"),"password" : "AAA" }

>


//$set默认只更新与条件匹配的第1行,false,true表示可以改所有

>db.c3.find({uid:{$lte:3}},{_id:0})

{"name" : "bin", "password" : "x","uid" : 1, "gid" : 1, "comment" :"bin", "homedir" : "/bin", "shell": "/sbin/nologin" }

{"name" : "daemon", "password" : "x","uid" : 2, "gid" : 2, "comment" :"daemon", "homedir" : "/sbin", "shell": "/sbin/nologin" }

{"name" : "adm", "password" : "x","uid" : 3, "gid" : 4, "comment" :"adm", "homedir" : "/var/adm", "shell": "/sbin/nologin" }

>db.c3.update({uid:{$lte:3}},{$set:{password:"F"}},false,true)

WriteResult({"nMatched" : 3, "nUpserted" : 0, "nModified": 3 })

>db.c3.find({uid:{$lte:3}},{_id:0})

{"name" : "bin", "password" : "F","uid" : 1, "gid" : 1, "comment" :"bin", "homedir" : "/bin", "shell": "/sbin/nologin" }

{"name" : "daemon", "password" : "F","uid" : 2, "gid" : 2, "comment" :"daemon", "homedir" : "/sbin", "shell": "/sbin/nologin" }

{"name" : "adm", "password" : "F","uid" : 3, "gid" : 4, "comment" :"adm", "homedir" : "/var/adm", "shell": "/sbin/nologin" }

>


//$unset删除文档指定的列

>db.c3.find({uid:{$lte:3}},{_id:0})

{"name" : "bin", "password" : "F","uid" : 1, "gid" : 1, "comment" :"bin", "homedir" : "/bin", "shell": "/sbin/nologin" }

{"name" : "daemon", "password" : "F","uid" : 2, "gid" : 2, "comment" :"daemon", "homedir" : "/sbin", "shell": "/sbin/nologin" }

{"name" : "adm", "password" : "F","uid" : 3, "gid" : 4, "comment" :"adm", "homedir" : "/var/adm", "shell": "/sbin/nologin" }

>db.c3.update({uid:1},{$unset:{password:"F"}})

WriteResult({"nMatched" : 1, "nUpserted" : 0, "nModified": 1 })

>db.c3.find({uid:1},{_id:0})

{"name" : "bin", "uid" : 1, "gid": 1, "comment" : "bin", "homedir" :"/bin", "shell" : "/sbin/nologin" }

>db.c3.find({uid:{$lte:3}},{_id:0})

{"name" : "bin", "uid" : 1, "gid": 1, "comment" : "bin", "homedir" :"/bin", "shell" : "/sbin/nologin" }

{"name" : "daemon", "password" : "F","uid" : 2, "gid" : 2, "comment" :"daemon", "homedir" : "/sbin", "shell": "/sbin/nologin" }

{"name" : "adm", "password" : "F","uid" : 3, "gid" : 4, "comment" :"adm", "homedir" : "/var/adm", "shell": "/sbin/nologin" }

>


$inc 自加减计算

>db.c3.find({name:"bin"},{_id:0,name:1,uid:1})

{"name" : "bin", "uid" : 1 }

>db.c3.update({name:"bin"},{$inc:{uid:2}})

WriteResult({"nMatched" : 1, "nUpserted" : 0, "nModified": 1 })

>db.c3.find({name:"bin"},{_id:0,name:1,uid:1})

{"name" : "bin", "uid" : 3 }

>

>db.c3.update({name:"bin"},{$inc:{uid:-1}})

WriteResult({"nMatched" : 1, "nUpserted" : 0, "nModified": 1 })

>db.c3.find({name:"bin"},{_id:0,name:1,uid:1})

{"name" : "bin", "uid" : 2 }

>


//管理数组类型的字段

>db.user.insert({name:"bob",likes:["a","b","c","d","e","f"]})

WriteResult({"nInserted" : 1 })

>db.user.find()

{"_id" : ObjectId("5b4314e470fa73faab18ef27"),"name" : "bob", "likes" : [ "a","b", "c", "d", "e", "f"] }

>

$push:可以重复添加

>db.user.update({name:"bob"},{$push:{likes:"w"}})

WriteResult({"nMatched" : 1, "nUpserted" : 0, "nModified": 1 })

>db.user.update({name:"bob"},{$push:{likes:"w"}})

WriteResult({"nMatched" : 1, "nUpserted" : 0, "nModified": 1 })

>db.user.find()

{"_id" : ObjectId("5b4314e470fa73faab18ef27"),"name" : "bob", "likes" : [ "a","b", "c", "d", "e", "f","w", "w" ] }

>

$addToSet:不允许重复添加

>db.user.update({name:"bob"},{$addToSet:{likes:"w"}})

WriteResult({"nMatched" : 1, "nUpserted" : 0, "nModified": 0 })

>db.user.find()

{"_id" : ObjectId("5b4314e470fa73faab18ef27"),"name" : "bob", "likes" : [ "a","b", "c", "d", "e", "f","w", "w" ] }

>


//$pop负数从头部删除正数从尾部删除

>db.user.find()

{"_id" : ObjectId("5b4314e470fa73faab18ef27"),"name" : "bob", "likes" : [ "a","b", "c", "d", "e", "f","w", "w" ] }

>db.user.update({name:"bob"},{$pop:{likes:1}})

WriteResult({"nMatched" : 1, "nUpserted" : 0, "nModified": 1 })

>db.user.find()

{"_id" : ObjectId("5b4314e470fa73faab18ef27"),"name" : "bob", "likes" : [ "a","b", "c", "d", "e", "f","w" ] }

>db.user.update({name:"bob"},{$pop:{likes:-1}})

WriteResult({"nMatched" : 1, "nUpserted" : 0, "nModified": 1 })

>db.user.find()

{"_id" : ObjectId("5b4314e470fa73faab18ef27"),"name" : "bob", "likes" : [ "b","c", "d", "e", "f", "w"] }

>

>db.user.update({name:"bob"},{$pop:{likes:2}})

WriteResult({

"nMatched": 0,

"nUpserted": 0,

"nModified": 0,

"writeError": {

"code": 9,

"errmsg": "$pop expects 1 or -1, found: 2" //一次只能删除一个元素

}

})

>


$pull删除指定的元素

>db.user.update({name:"bob"},{$pull:{likes:"e"}})

WriteResult({"nMatched" : 1, "nUpserted" : 0, "nModified": 1 })

>db.user.find()

{"_id" : ObjectId("5b4314e470fa73faab18ef27"),"name" : "bob", "likes" : [ "b","c", "d", "f", "w" ] }

>


drop/remove

集合(drop删除集合同时删除索引)---》文档(remove只删除文档不删除索引)

删除文档 db.c6.remove({}) //{}不能省略表示所有条件

>db.c6.find()

{"_id" : ObjectId("5b42da3770fa73faab18ef24"),"name" : "zs", "age" : 19, "pay": 25800 }

{"_id" : ObjectId("5b42da3770fa73faab18ef25"),"name" : "ls", "school" : "test"}

>db.c6.remove({})

WriteResult({"nRemoved" : 2 })

>db.c6.find()

>


//删除与条件匹配的文档

>db.c3.remove({uid:4})

WriteResult({"nRemoved" : 1 })



猜你喜欢

转载自blog.csdn.net/weixin_40018205/article/details/80968197