Jadual Kandungan
数据库基本命令操作
数据库常用命令
Collection聚集集合
用户相关
错误信息操作
查看聚集集合基本信息
索引操作
查询操作
1.查询所有
2.显示指定列
3.使用and操作
4.使用or操作
5.使用<, <=, >, >= ($lt, $lte, $gt, $gte )操作,取模运算$mod
6.使用in, not in ($in, $nin)
7.匹配null操作
8.使用like (mongoDB 支持正则表达式)
9.使用distinct、count查询
10.数组查询 (mongoDB自己特有的)(all,size)
11.exists判断是否存在,type判断类型,Sort排序
12.$elemMatch数组元素匹配
更新操作
1.update( criteria, objNew, upsert, multi)、save() 方法
save()方法相当于upsert与multi 都为true时候
2.$inc 对于数字字段的值增加value
3.$set 相当于sql的set field = value
4.$unset 删除字段
5.$push 数组下操作
6.$pushAll 数组下操作
7.$addToSet 数组操作
8.$pop 删除数组内的一个值
9.$pull 数组field内删除一个等于value值
10.$pullAll 数组field内删除多个值
Rumah pangkalan data tutorial mysql Mongodb数据库命令端常用操作

Mongodb数据库命令端常用操作

Jun 07, 2016 pm 03:56 PM
mongodb Pesanan asas Biasa digunakan beroperasi pangkalan data

数据库基本命令操作 数据库常用命令 1、Help查看命令提示 help db.help(); db.yourColl.help(); db.youColl.find().help(); rs.help(); 2、切换/创建数据库 use yourDB; 当创建一个集合(table)的时候会自动创建当前数据库 3、查询所有数据库 show dbs; 4、删

数据库基本命令操作

数据库常用命令

1、Help查看命令提示

help

db.help();

db.yourColl.help();

db.youColl.find().help();

rs.help();

2、切换/创建数据库

use yourDB; 当创建一个集合(table)的时候会自动创建当前数据库

3、查询所有数据库

show dbs;

4、删除当前使用数据库

db.dropDatabase();

5、从指定主机上克隆数据库

db.cloneDatabase(“127.0.0.1”); 将指定机器上的数据库的数据克隆到当前数据库

6、从指定的机器上复制指定数据库数据到某个数据库

db.copyDatabase("mydb", "temp", "127.0.0.1");将本机的mydb的数据复制到temp数据库中

7、修复当前数据库

db.repairDatabase();

8、查看当前使用的数据库

db.getName();

db; db和getName方法是一样的效果,都可以查询当前使用的数据库

9、显示当前db状态

db.stats();

10、当前db版本

db.version();

11、查看当前db的链接机器地址

db.getMongo();

Collection聚集集合

1、创建一个聚集集合(table)

db.createCollection(“collName”, {size: 20, capped: 5, max: 100});

2、得到指定名称的聚集集合(table)

db.getCollection("account");

3、得到当前db的所有聚集集合

db.getCollectionNames();

4、显示当前db所有聚集索引的状态

db.printCollectionStats();

用户相关

1、添加一个用户

db.addUser("name");

db.addUser("userName", "pwd123", true); 添加用户、设置密码、是否只读

2、数据库认证、安全模式

db.auth("userName", "123123");

3、显示当前所有用户

show users;

4、删除用户

db.removeUser("userName");

错误信息操作

1、查询之前的错误信息 db.getPrevError(); 2、清除错误记录 db.resetError();

查看聚集集合基本信息

1、查看帮助  db.yourColl.help();
2、查询当前集合的数据条数  db.yourColl.count();
3、查看数据空间大小 db.userInfo.dataSize();
4、得到当前聚集集合所在的db db.userInfo.getDB();
5、得到当前聚集的状态 db.userInfo.stats();
6、得到聚集集合总大小 db.userInfo.totalSize();
7、聚集集合储存空间大小 db.userInfo.storageSize();
8、Shard版本信息  db.userInfo.getShardVersion()
9、聚集集合重命名 db.userInfo.renameCollection("users"); 将userInfo重命名为users
10、删除当前聚集集合 db.userInfo.drop();
Salin selepas log masuk

索引操作

1、创建索引
db.userInfo.ensureIndex({name: 1});
db.userInfo.ensureIndex({name: 1, ts: -1});
 
2、查询当前聚集集合所有索引
db.userInfo.getIndexes();
 
3、查看总索引记录大小
db.userInfo.totalIndexSize();
 
4、读取当前集合的所有index信息
db.users.reIndex();
 
5、删除指定索引
db.users.dropIndex("name_1");
 
6、删除所有索引索引
db.users.dropIndexes();
Salin selepas log masuk

查询操作

Mongodb-SpringMvc下Query数据库操作SQL
http://blog.csdn.net/xiaohulunb/article/details/27828381

1.查询所有

> db.foo.find()
{ "_id" : ObjectId("5389aa1df06b88aaa313746a"), "name" : "yiwa", "age" : 25, "user" : { "phone" : [ 123, 13, 186 ] } }
{ "_id" : ObjectId("5389aaa4afce65313a5614f7"), "name" : "erwa", "age" : 75, "user" : { "phone" : [ 63, 188, 13, 186 ] } }
{ "_id" : ObjectId("5389aabaafce65313a5614f8"), "name" : "sanwa", "age" : 85, "user" : { "phone" : [ 186 ] } }
{ "_id" : ObjectId("5389aac5afce65313a5614f9"), "name" : "siwa", "age" : 15, "user" : { "phone" : [ 63, 137 ] } }
Salin selepas log masuk

2.显示指定列

第一个{} 放where条件 第二个{} 指定哪些列显示和不显示 (0表示不显示 >0表示显示)

后面演示使用{'_id':0} 默认隐藏‘_id列’减少显示量

> db.foo.find({},{&#39;_id&#39;:0,&#39;name&#39;:1,&#39;user&#39;:1})
{ "name" : "yiwa", "user" : { "phone" : [ 123, 13, 186 ] } }
{ "name" : "erwa", "user" : { "phone" : [ 63, 188, 13, 186 ] } }
{ "name" : "sanwa", "user" : { "phone" : [ 186 ] } }
{ "name" : "siwa", "user" : { "phone" : [ 63, 137 ] } }
Salin selepas log masuk

3.使用and操作

#名字是yiwa且年龄是25岁

> db.foo.find({&#39;name&#39;:&#39;yiwa&#39;,&#39;age&#39;:25},{&#39;_id&#39;:0})
{ "name" : "yiwa", "age" : 25, "user" : { "phone" : [ 123, 13, 186 ] } }
Salin selepas log masuk

4.使用or操作

#名字是yiwa或者年龄是75岁

> db.foo.find({&#39;$or&#39;:[{&#39;name&#39;:&#39;yiwa&#39;},{&#39;age&#39;:75}]},{&#39;_id&#39;:0})
{ "name" : "yiwa", "age" : 25, "user" : { "phone" : [ 123, 13, 186 ] } }
{ "name" : "erwa", "age" : 75, "user" : { "phone" : [ 63, 188, 13, 186 ] } }
Salin selepas log masuk

5.使用<, <=, >, >= ($lt, $lte, $gt, $gte )操作,取模运算$mod

#年龄在 15<= x <=75 岁

> db.foo.find({&#39;age&#39;:{&#39;$gte&#39;:15,&#39;$lte&#39;:75}},{&#39;_id&#39;:0})
{ "name" : "yiwa", "age" : 25, "user" : { "phone" : [ 123, 13, 186 ] } }
{ "name" : "erwa", "age" : 75, "user" : { "phone" : [ 63, 188, 13, 186 ] } }
{ "name" : "siwa", "age" : 15, "user" : { "phone" : [ 63, 137 ] } }
Salin selepas log masuk

# 对age%3==1的取模结果

> db.foo.find({&#39;age&#39;:{&#39;$mod&#39;:[3,1]}},{&#39;_id&#39;:0})
{ "name" : "yiwa", "age" : 25, "user" : { "phone" : [ 123, 13, 186 ] } }
{ "name" : "sanwa", "age" : 85, "user" : { "phone" : [ 186 ] } }
Salin selepas log masuk

6.使用in, not in ($in, $nin)

#名字不是siwa且年龄在[15,25,85]

> db.foo.find({&#39;name&#39;:{&#39;$nin&#39;:[&#39;siwa&#39;]},&#39;age&#39;:{&#39;$in&#39;:[15,25,85]}},{&#39;_id&#39;:0})
{ "name" : "yiwa", "age" : 25, "user" : { "phone" : [ 123, 13, 186 ] } }
{ "name" : "sanwa", "age" : 85, "user" : { "phone" : [ 186 ] } }
Salin selepas log masuk

7.匹配null操作

#名字是null的

> db.foo.find({&#39;name&#39;:null},{&#39;_id&#39;:0})
> 
Salin selepas log masuk

8.使用like (mongoDB 支持正则表达式)

#名字like%iwa%的 #名字like yi%的

> db.foo.find({&#39;name&#39;:/iwa/},{&#39;_id&#39;:0})
{ "name" : "yiwa", "age" : 25, "user" : { "phone" : [ 123, 13, 186 ] } }
{ "name" : "siwa", "age" : 15, "user" : { "phone" : [ 63, 137 ] } }
> db.foo.find({&#39;name&#39;:/^yi/},{&#39;_id&#39;:0})
{ "name" : "yiwa", "age" : 25, "user" : { "phone" : [ 123, 13, 186 ] } }
Salin selepas log masuk

9.使用distinct、count查询

> db.foo.distinct(&#39;name&#39;)
[ "yiwa", "erwa", "sanwa", "siwa" ]
> db.foo.count()
4
Salin selepas log masuk

#distinct结合条件,排序使用

> db.foo.find({},{&#39;_id&#39;:0})
{ "name" : "yiwa", "age" : 25, "user" : { "phone" : [ 123, 13, 186 ] } }
{ "name" : "erwa", "age" : 95, "user" : { "phone" : [ 123, 133, 186 ] } }
{ "name" : "sanwa", "age" : 85, "user" : { "phone" : [ 133, 137, 186 ] } }
> db.foo.distinct("age",{&#39;user.phone&#39;:{&#39;$in&#39;:[63,65,186]}}).sort({&#39;age&#39;:1})
[ 25, 85, 95 ]
> db.foo.distinct("age",{&#39;user.phone&#39;:{&#39;$in&#39;:[63,65,186]}}).sort({&#39;age&#39;:-1})
[ 25, 85, 95 ]
> db.foo.distinct("age",{&#39;user.phone&#39;:{&#39;$in&#39;:[63,65,186]}})
[ 25, 95, 85 ]
Salin selepas log masuk

待解疑问:?为什么 排序时候 age :-1 与 age :1 结果一样?

10.数组查询 (mongoDB自己特有的)(all,size)

#电话中含有186的

> db.foo.find({&#39;user.phone&#39;:186},{&#39;_id&#39;:0})
{ "name" : "yiwa", "age" : 25, "user" : { "phone" : [ 123, 13, 186 ] } }
{ "name" : "erwa", "age" : 75, "user" : { "phone" : [ 63, 188, 13, 186 ] } }
{ "name" : "sanwa", "age" : 85, "user" : { "phone" : [ 186 ] } }
Salin selepas log masuk

#电话中含有188,186的

> db.foo.find({&#39;user.phone&#39;:{&#39;$all&#39;:[188,186]}},{&#39;_id&#39;:0})
{ "name" : "erwa", "age" : 75, "user" : { "phone" : [ 63, 188, 13, 186 ] } }
Salin selepas log masuk

#电话中有2个值的

> db.foo.find({&#39;user.phone&#39;:{&#39;$size&#39;:2}},{&#39;_id&#39;:0})
{ "name" : "siwa", "age" : 15, "user" : { "phone" : [ 63, 137 ] } }
Salin selepas log masuk

11.exists判断是否存在,type判断类型,Sort排序

#name中值是字符型,age中值是整型,按name升序,age降序

> db.foo.find({&#39;name&#39;:{&#39;$type&#39;:2},&#39;age&#39;:{&#39;$type&#39;:16}},{&#39;_id&#39;:0}).sort({&#39;name&#39;:1,&#39;age&#39;:-1})
{ "name" : "erwa", "age" : 75, "user" : { "phone" : [ 63, 188, 13, 186 ] } }
{ "name" : "sanwa", "age" : 85, "user" : { "phone" : [ 186 ] } }
{ "name" : "siwa", "age" : 15, "user" : { "phone" : [ 63, 137 ] } }
Salin selepas log masuk

#name中值存在的:true #name中值不存在的:false

> db.foo.find({&#39;name&#39;:{&#39;$exists&#39;:true}},{&#39;_id&#39;:0})
{ "name" : "yiwa", "age" : 25, "user" : { "phone" : [ 123, 13, 186 ] } }
{ "name" : "erwa", "age" : 75, "user" : { "phone" : [ 63, 188, 13, 186 ] } }
{ "name" : "sanwa", "age" : 85, "user" : { "phone" : [ 186 ] } }
{ "name" : "siwa", "age" : 15, "user" : { "phone" : [ 63, 137 ] } }
> db.foo.find({&#39;name&#39;:{&#39;$exists&#39;:false}},{&#39;_id&#39;:0})
> 
Salin selepas log masuk

12.$elemMatch数组元素匹配

#插入测试数据

> db.foo.save({x:[{&#39;a&#39;:1,&#39;b&#39;:5},999,&#39;liw&#39;,{&#39;a&#39;:12},{&#39;b&#39;:100}]})
WriteResult({ "nInserted" : 1 })
Salin selepas log masuk

#查询某元素中a=1,b=5的元素

> db.foo.find({&#39;x&#39;:{&#39;$elemMatch&#39;:{&#39;a&#39;:1,b:{&#39;$gt&#39;:4}}}},{&#39;_id&#39;:0})
{ "x" : [ { "a" : 1, "b" : 5 }, 999, "liw", { "a" : 12 }, { "b" : 100 } ] }
> db.foo.find({&#39;x.a&#39;:1,&#39;x.b&#39;:5},{&#39;_id&#39;:0})
{ "x" : [ { "a" : 1, "b" : 5 }, 999, "liw", { "a" : 12 }, { "b" : 100 } ] }
Salin selepas log masuk

更新操作

1.update( criteria, objNew, upsert, multi)、save() 方法

criteria : update的查询条件,类似sql update查询内where后面的
objNew : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
upsert : 这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
multi : mongodb默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。

save()方法相当于upsert与multi 都为true时候

> db.foo.find({},{&#39;_id&#39;:0})
{ "name" : "yiwa", "age" : 55, "user" : { "phone" : [ 123, 13, 186 ] } }
{ "name" : "erwa", "age" : 75, "user" : { "phone" : [ 63, 188, 13, 186 ] } }
{ "name" : "sanwa", "age" : 85, "user" : { "phone" : [ 186 ] } }
{ "name" : "siwa", "age" : 15, "user" : { "phone" : [ 63, 137 ] } }
> db.foo.update({&#39;age&#39;:{$gte:30}},{$set:{&#39;age&#39;:55}},fasle,false)
2014-05-31T19:36:05.407+0800 ReferenceError: fasle is not defined
> db.foo.update({&#39;age&#39;:{$gte:30}},{$set:{&#39;age&#39;:55}},false,false)
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 0 })
> db.foo.find({},{&#39;_id&#39;:0})
{ "name" : "yiwa", "age" : 55, "user" : { "phone" : [ 123, 13, 186 ] } }
{ "name" : "erwa", "age" : 75, "user" : { "phone" : [ 63, 188, 13, 186 ] } }
{ "name" : "sanwa", "age" : 85, "user" : { "phone" : [ 186 ] } }
{ "name" : "siwa", "age" : 15, "user" : { "phone" : [ 63, 137 ] } }
> db.foo.update({&#39;age&#39;:{$gte:30}},{$set:{&#39;age&#39;:56}},false,false)
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.foo.find({},{&#39;_id&#39;:0})
{ "name" : "yiwa", "age" : 56, "user" : { "phone" : [ 123, 13, 186 ] } }
{ "name" : "erwa", "age" : 75, "user" : { "phone" : [ 63, 188, 13, 186 ] } }
{ "name" : "sanwa", "age" : 85, "user" : { "phone" : [ 186 ] } }
{ "name" : "siwa", "age" : 15, "user" : { "phone" : [ 63, 137 ] } }
> db.foo.update({&#39;age&#39;:{$gte:300}},{$set:{&#39;age&#39;:56}},true,false)
WriteResult({
	"nMatched" : 0,
	"nUpserted" : 1,
	"nModified" : 0,
	"_id" : ObjectId("5389bee8afce65313a5614fa")
})
> db.foo.find({},{&#39;_id&#39;:0})
{ "name" : "yiwa", "age" : 56, "user" : { "phone" : [ 123, 13, 186 ] } }
{ "name" : "erwa", "age" : 75, "user" : { "phone" : [ 63, 188, 13, 186 ] } }
{ "name" : "sanwa", "age" : 85, "user" : { "phone" : [ 186 ] } }
{ "name" : "siwa", "age" : 15, "user" : { "phone" : [ 63, 137 ] } }
{ "age" : 56 }
> db.foo.update({&#39;age&#39;:{$gte:30}},{$set:{&#39;age&#39;:56}},true,true)
WriteResult({ "nMatched" : 4, "nUpserted" : 0, "nModified" : 2 })
> db.foo.find({},{&#39;_id&#39;:0})
{ "name" : "yiwa", "age" : 56, "user" : { "phone" : [ 123, 13, 186 ] } }
{ "name" : "erwa", "age" : 56, "user" : { "phone" : [ 63, 188, 13, 186 ] } }
{ "name" : "sanwa", "age" : 56, "user" : { "phone" : [ 186 ] } }
{ "name" : "siwa", "age" : 15, "user" : { "phone" : [ 63, 137 ] } }
{ "age" : 56 }
Salin selepas log masuk

2.$inc 对于数字字段的值增加value

#年龄大于30的 全部age值增加20

> db.foo.find({},{&#39;_id&#39;:0})
{ "name" : "yiwa", "age" : 58, "user" : { "phone" : [ 123, 13, 186 ] } }
{ "name" : "erwa", "age" : 56, "user" : { "phone" : [ 63, 188, 13, 186 ] } }
{ "name" : "sanwa", "age" : 56, "user" : { "phone" : [ 186 ] } }
{ "name" : "siwa", "age" : 15, "user" : { "phone" : [ 63, 137 ] } }
> db.foo.update({&#39;age&#39;:{$gte:30}},{$inc:{&#39;age&#39;:20}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.foo.find({},{&#39;_id&#39;:0})
{ "name" : "yiwa", "age" : 78, "user" : { "phone" : [ 123, 13, 186 ] } }
{ "name" : "erwa", "age" : 56, "user" : { "phone" : [ 63, 188, 13, 186 ] } }
{ "name" : "sanwa", "age" : 56, "user" : { "phone" : [ 186 ] } }
{ "name" : "siwa", "age" : 15, "user" : { "phone" : [ 63, 137 ] } }
Salin selepas log masuk

3.$set 相当于sql的set field = value

#年龄=56的,设置为名字='laoda',年龄=65

> db.foo.find({},{&#39;_id&#39;:0})
{ "name" : "yiwa", "age" : 78, "user" : { "phone" : [ 123, 13, 186 ] } }
{ "name" : "erwa", "age" : 56, "user" : { "phone" : [ 63, 188, 13, 186 ] } }
{ "name" : "sanwa", "age" : 56, "user" : { "phone" : [ 186 ] } }
{ "name" : "siwa", "age" : 15, "user" : { "phone" : [ 63, 137 ] } }
> db.foo.update({&#39;age&#39;:56},{$set:{&#39;name&#39;:&#39;laoda&#39;,&#39;age&#39;:65}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.foo.find({},{&#39;_id&#39;:0})
{ "name" : "yiwa", "age" : 78, "user" : { "phone" : [ 123, 13, 186 ] } }
{ "name" : "laoda", "age" : 65, "user" : { "phone" : [ 63, 188, 13, 186 ] } }
{ "name" : "sanwa", "age" : 56, "user" : { "phone" : [ 186 ] } }
{ "name" : "siwa", "age" : 15, "user" : { "phone" : [ 63, 137 ] } }
Salin selepas log masuk

#只更新了一条数据,因为 multi 默认为false

4.$unset 删除字段

#查询name='laoda',user字段存在的数据中,删除age=65的age字段

> db.foo.find({},{&#39;_id&#39;:0})
{ "name" : "yiwa", "age" : 78, "user" : { "phone" : [ 123, 13, 186 ] } }
{ "name" : "laoda", "age" : 65, "user" : { "phone" : [ 63, 188, 13, 186 ] } }
{ "name" : "sanwa", "age" : 56, "user" : { "phone" : [ 186 ] } }
{ "name" : "siwa", "age" : 15, "user" : { "phone" : [ 63, 137 ] } }
{ "age" : 65, "name" : "laoda" }
> db.foo.update({&#39;name&#39;:&#39;laoda&#39;,&#39;user&#39;:{$exists:true}},{$unset:{"age":65}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.foo.find({},{&#39;_id&#39;:0})
{ "name" : "yiwa", "age" : 78, "user" : { "phone" : [ 123, 13, 186 ] } }
{ "name" : "laoda", "user" : { "phone" : [ 63, 188, 13, 186 ] } }
{ "name" : "sanwa", "age" : 56, "user" : { "phone" : [ 186 ] } }
{ "name" : "siwa", "age" : 15, "user" : { "phone" : [ 63, 137 ] } }
{ "age" : 65, "name" : "laoda" }
Salin selepas log masuk

5.$push 数组下操作

#把value追加到field里面去,field一定要是数组类型才行,如果field不存在,会新增一个数组类型加进去

> db.array.find({},{&#39;_id&#39;:0})
{ "age" : 65, "name" : "laoda" }
> db.array.update({&#39;name&#39;:&#39;laoda&#39;,&#39;age&#39;:65},{$push:{"phone":65}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.array.find({},{&#39;_id&#39;:0})
{ "age" : 65, "name" : "laoda", "phone" : [ 65 ] }
> db.array.update({&#39;name&#39;:&#39;laoda&#39;,&#39;age&#39;:65},{$push:{"phone":[65,75,{&#39;iphone&#39;:&#39;188&#39;},85]}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.array.find({},{&#39;_id&#39;:0})
{ "age" : 65, "name" : "laoda", "phone" : [ 65, [ 65, 75, { "iphone" : "188" }, 85 ] ] }
Salin selepas log masuk

6.$pushAll 数组下操作

#一次可以追加多个值到数组

> db.array.find({},{&#39;_id&#39;:0})
{ "age" : 65, "name" : "laoda" }
> db.array.update({&#39;name&#39;:&#39;laoda&#39;,&#39;age&#39;:65},{$pushAll:{"phone":[111,222]}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.array.find({},{&#39;_id&#39;:0})
{ "age" : 65, "name" : "laoda", "phone" : [ 111, 222 ] }
> db.array.update({&#39;name&#39;:&#39;laoda&#39;,&#39;age&#39;:65},{$pushAll:{"phone":[111,222]}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.array.find({},{&#39;_id&#39;:0})
{ "age" : 65, "name" : "laoda", "phone" : [ 111, 222, 111, 222 ] }
Salin selepas log masuk

7.$addToSet 数组操作

#增加一个值到数组内,而且只有当这个值不在数组内才增加 #插入2次发现,此值存在的时候不插入

> db.array.find({},{&#39;_id&#39;:0})
{ "age" : 65, "name" : "laoda", "phone" : [ 111, 222, 111, 222, [ 111, 222 ] ] }
> db.array.find({},{&#39;_id&#39;:0})
{ "age" : 65, "name" : "laoda", "phone" : [ 111, 222, 111, 222, [ 111, 222 ] ] }
> db.array.update({&#39;name&#39;:&#39;laoda&#39;,&#39;age&#39;:65},{$addToSet:{"phone":333}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.array.find({},{&#39;_id&#39;:0})
{ "age" : 65, "name" : "laoda", "phone" : [ 111, 222, 111, 222, [ 111, 222 ], 333 ] }
> db.array.update({&#39;name&#39;:&#39;laoda&#39;,&#39;age&#39;:65},{$addToSet:{"phone":333}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 0 })
> db.array.find({},{&#39;_id&#39;:0})
{ "age" : 65, "name" : "laoda", "phone" : [ 111, 222, 111, 222, [ 111, 222 ], 333 ] }
Salin selepas log masuk

8.$pop 删除数组内的一个值

#删除最后一个值:{ $pop : { field : 1 } }删除第一个值:{ $pop : { field : -1 } }
注意,只能删除一个值,也就是说只能用1或-1,而不能用2或-2来删除两条

> db.array.find({},{&#39;_id&#39;:0})
{ "age" : 65, "name" : "laoda", "phone" : [ 111, 222, 111, 222, [ 111, 222 ], 333 ] }
> db.array.update({&#39;name&#39;:&#39;laoda&#39;,&#39;age&#39;:65},{$pop:{"phone":1}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.array.find({},{&#39;_id&#39;:0})
{ "age" : 65, "name" : "laoda", "phone" : [ 111, 222, 111, 222, [ 111, 222 ] ] }
> db.array.update({&#39;name&#39;:&#39;laoda&#39;,&#39;age&#39;:65},{$pop:{"phone":-1}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.array.find({},{&#39;_id&#39;:0})
{ "age" : 65, "name" : "laoda", "phone" : [ 222, 111, 222, [ 111, 222 ] ] }
> db.array.update({&#39;name&#39;:&#39;laoda&#39;,&#39;age&#39;:65},{$pop:{"phone":2}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.array.find({},{&#39;_id&#39;:0})
{ "age" : 65, "name" : "laoda", "phone" : [ 222, 111, 222 ] }
> db.array.update({&#39;name&#39;:&#39;laoda&#39;,&#39;age&#39;:65},{$pop:{"phone":333}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.array.find({},{&#39;_id&#39;:0})
{ "age" : 65, "name" : "laoda", "phone" : [ 222, 111 ] }
> db.array.update({&#39;name&#39;:&#39;laoda&#39;,&#39;age&#39;:65},{$pop:{"phone":-333}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.array.find({},{&#39;_id&#39;:0})
{ "age" : 65, "name" : "laoda", "phone" : [ 111 ] }
Salin selepas log masuk

#测试发现,只要是正整数从最后删除,负数从头部删除。

9.$pull 数组field内删除一个等于value值

> db.array.find({},{&#39;_id&#39;:0})
{ "age" : 65, "name" : "laoda", "phone" : [ 111, 333 ] }
> db.array.update({&#39;name&#39;:&#39;laoda&#39;,&#39;age&#39;:65},{$pull:{"phone":333}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.array.find({},{&#39;_id&#39;:0})
{ "age" : 65, "name" : "laoda", "phone" : [ 111 ] }
Salin selepas log masuk

10.$pullAll 数组field内删除多个值

> db.array.find({},{&#39;_id&#39;:0})
{ "age" : 65, "name" : "laoda", "phone" : [ 111, 333, 222 ] }
> db.array.update({&#39;name&#39;:&#39;laoda&#39;,&#39;age&#39;:65},{$pullAll:{"phone":[111,222]}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.array.find({},{&#39;_id&#39;:0})
{ "age" : 65, "name" : "laoda", "phone" : [ 333 ] }
Salin selepas log masuk
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

iOS 18 menambah fungsi album 'Dipulihkan' baharu untuk mendapatkan semula foto yang hilang atau rosak iOS 18 menambah fungsi album 'Dipulihkan' baharu untuk mendapatkan semula foto yang hilang atau rosak Jul 18, 2024 am 05:48 AM

Keluaran terbaharu Apple bagi sistem iOS18, iPadOS18 dan macOS Sequoia telah menambah ciri penting pada aplikasi Photos, yang direka untuk membantu pengguna memulihkan foto dan video yang hilang atau rosak dengan mudah disebabkan pelbagai sebab. Ciri baharu ini memperkenalkan album yang dipanggil "Dipulihkan" dalam bahagian Alat pada apl Foto yang akan muncul secara automatik apabila pengguna mempunyai gambar atau video pada peranti mereka yang bukan sebahagian daripada pustaka foto mereka. Kemunculan album "Dipulihkan" menyediakan penyelesaian untuk foto dan video yang hilang akibat kerosakan pangkalan data, aplikasi kamera tidak disimpan ke pustaka foto dengan betul, atau aplikasi pihak ketiga yang menguruskan pustaka foto. Pengguna hanya memerlukan beberapa langkah mudah

Apa yang perlu dilakukan jika navicat tamat tempoh Apa yang perlu dilakukan jika navicat tamat tempoh Apr 23, 2024 pm 12:12 PM

Penyelesaian untuk menyelesaikan isu tamat tempoh Navicat termasuk: memperbaharui lesen dan menyahpasang semula kemas kini automatik, hubungi Navicat Premium Essentials;

Tutorial terperinci tentang mewujudkan sambungan pangkalan data menggunakan MySQLi dalam PHP Tutorial terperinci tentang mewujudkan sambungan pangkalan data menggunakan MySQLi dalam PHP Jun 04, 2024 pm 01:42 PM

Cara menggunakan MySQLi untuk mewujudkan sambungan pangkalan data dalam PHP: Sertakan sambungan MySQLi (require_once) Cipta fungsi sambungan (functionconnect_to_db) Fungsi sambungan panggilan ($conn=connect_to_db()) Laksanakan pertanyaan ($result=$conn->query()) Tutup sambungan ( $conn->close())

Bagaimana untuk mengendalikan ralat sambungan pangkalan data dalam PHP Bagaimana untuk mengendalikan ralat sambungan pangkalan data dalam PHP Jun 05, 2024 pm 02:16 PM

Untuk mengendalikan ralat sambungan pangkalan data dalam PHP, anda boleh menggunakan langkah berikut: Gunakan mysqli_connect_errno() untuk mendapatkan kod ralat. Gunakan mysqli_connect_error() untuk mendapatkan mesej ralat. Dengan menangkap dan mengelog mesej ralat ini, isu sambungan pangkalan data boleh dikenal pasti dan diselesaikan dengan mudah, memastikan kelancaran aplikasi anda.

Prinsip pertaruhan Astar, pembongkaran pendapatan, projek dan strategi airdrop & strategi peringkat pengasuh operasi Prinsip pertaruhan Astar, pembongkaran pendapatan, projek dan strategi airdrop & strategi peringkat pengasuh operasi Jun 25, 2024 pm 07:09 PM

Jadual Kandungan Prinsip Staking Astar Dapp Staking Hasil Pembongkaran Projek Airdrop Berpotensi: AlgemNeurolancheHealthreeAstar Degens DAOVeryLongSwap Staking Strategi & Operasi "AstarDapp Staking" telah dinaik taraf kepada versi V3 pada awal tahun ini, dan banyak pelarasan telah dibuat pada staking peraturan. Pada masa ini, kitaran pertaruhan pertama telah tamat, dan kitaran kecil "pengundian" kitaran pertaruhan kedua baru sahaja bermula. Untuk mendapatkan faedah "ganjaran tambahan", anda perlu memahami peringkat kritikal ini (dijangka akan berlangsung sehingga 26 Jun, berbaki kurang daripada 5 hari). Saya akan memecahkan pendapatan pertaruhan Astar secara terperinci,

Bagaimana untuk menggunakan fungsi panggil balik pangkalan data di Golang? Bagaimana untuk menggunakan fungsi panggil balik pangkalan data di Golang? Jun 03, 2024 pm 02:20 PM

Menggunakan fungsi panggil balik pangkalan data di Golang boleh mencapai: melaksanakan kod tersuai selepas operasi pangkalan data yang ditentukan selesai. Tambah tingkah laku tersuai melalui fungsi berasingan tanpa menulis kod tambahan. Fungsi panggil balik tersedia untuk operasi memasukkan, mengemas kini, memadam dan pertanyaan. Anda mesti menggunakan fungsi sql.Exec, sql.QueryRow atau sql.Query untuk menggunakan fungsi panggil balik.

Bagaimana untuk menyambungkan navicat ke mongodb Bagaimana untuk menyambungkan navicat ke mongodb Apr 24, 2024 am 11:27 AM

Untuk menyambung ke MongoDB menggunakan Navicat, anda perlu: Pasang Navicat Buat sambungan MongoDB: a Masukkan nama sambungan, alamat hos dan port b Masukkan maklumat pengesahan (jika perlu) Tambah sijil SSL (jika perlu) Sahkan sambungan Simpan sambungan

Bagaimana untuk menyambung ke pangkalan data jauh menggunakan Golang? Bagaimana untuk menyambung ke pangkalan data jauh menggunakan Golang? Jun 01, 2024 pm 08:31 PM

Melalui pakej pangkalan data/sql perpustakaan standard Go, anda boleh menyambung ke pangkalan data jauh seperti MySQL, PostgreSQL atau SQLite: buat rentetan sambungan yang mengandungi maklumat sambungan pangkalan data. Gunakan fungsi sql.Open() untuk membuka sambungan pangkalan data. Lakukan operasi pangkalan data seperti pertanyaan SQL dan operasi sisipan. Gunakan tangguh untuk menutup sambungan pangkalan data untuk mengeluarkan sumber.

See all articles