MongoDB学习笔记(三)

5 一些基本操作
#添加内嵌文档
db.users.update{{username:"master"},{$set:{hobby:{cities:["beijing","shanghai","shenzhen"],movies:["marvel","DC"]}}}}

#查询内嵌文档属性,属性需要加引号,值可以为数组里的值
db.users.find({"hobby.movies":"marvel"})

#内嵌文档数组添加值,addToSet如果数组中已有该值则不会添加
db.users.update({username:"master",{$push:{"hobby.movies":"Sony"}}})
db.users.addToSet({username:"master",{$push:{"hobby.movies":"Sony"}}})

#删除内嵌文档中的值
db.users.remvoe({"hobby.cities":"beijing"})

#插入两万条数据,两种方式,数组插入速度更快
for(var i=1; i<=20000; i++){  
	db.numbers.insert({num:i})
}
var arr = [];
for(var i=1; i<=20000; i++){  
	arr.push({num:i});
}
db.number.insert(arr);


#查询numbers中num为500的文档
db.nubmers.find({num:500})

#查询numbers中num大于500的文档
db.nubmers.find({num:{$gt:500}})

#查询numbers中num小于30的文档
db.nubmers.find({num:{$lt:30}})

#查询numbers中num大于40小于50的文档
db.nubmers.find({num:{$gt:40,$lt:50}})

#查询numbers中num中前10条数据
db.nubmers.find().limit(10)

#查询numbers中num中第11条到第20条数据,skip跳过前10条,mongodb自动调整skip和limit
db.nubmers.find().skip(10).limit(10)
db.nubmers.find().limit(10).skip(10)

#查询numbers中num大于40小于50的文档
db.nubmers.find($or:[{num:{$lt:50}},{num:{$gt:40}}])

#numbers中num小于40的增加20
db.number.updateMany({num:{$lt:40}},{$inc:{num:20}})
6 文档之间的关系
  • 一对一(在mongodb中用内嵌文档体现一对一关系)
db.stus.insert(name:"master",{name:"worker"})
  • 一对多/多对一
#内嵌文档
db.stus.insert(name:"master",{name:["worker1","worker2"]})

#将关联的id作为属性
db.stus.insert({list:['apple','banana'],user_id: ObjectId("[对应表id]")});
  • 多对多
db.teachers.insert([
	{name:"teacher1"},
	{name:"teacher2"},
	{name:"teacher3"}
]);

db.stus.insert([
	{
		name:"student1".
		tech_ids:[
			teacher1_id,
			teacher2_id
		]
	},{
		name:"student2".
		tech_ids:[
			teacher2_id,
			teacher3_id
		]
	}
]);
7 排列和投影
#排序 sort({[属性名]:[值]}) 1表示升序,-1表示降序
db.emp.find({}).sort({sal:1,empno:-1})

#投影 显示希望出现的列 1表示出现 0表示不出现 _id默认出现
db.emp.find({},{sal:1,_id:0})
8 导入文件
# --db库 --collection集合 --drop清空原油文档 --file导入的文件
mongoimport --db [数据库名] --collection [集合名] --type [文件类型] --headerline --file [文件路径]
#mongoimport --help可以看到指令,需要注意的是--db/-d都可以指明数据库,但是
#前面的'-'数量不同,--collection/-c也是同理,type可以是json/txt/csv文件
#headerline表示第一行为属性名不用导入
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值