MongoDB 基础(二)

.__插入文档
文档的值也可以是文档 内嵌文档
$push 用于向数组中添加一个新的元素          会添加重复的元素
db.users.update( { username:"tangseng" } , { $push : { "hobby.movies" : "Interstellar" } } )
$addToSet 向数组中添加一个新元素 如果数组中存在了该元素则不会添加
插入多条数据
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.numbers.insert(arr)

.__查询文档
MongoDB支持直接通过内嵌文档的属性进行查询,如果查询内嵌文档字可以通过 . 的形式匹
如果要通过内嵌文档来对文档进行查询,此时属性名必须使用引号""
db.users.find({"hobby.movies":"hero"})

.__查询条件操作符
    (>) 大于 - $gt
    (<) 小于 - $lt
    (>=) 大于等于 - $gte
    (<= ) 小于等于 - $lte
    $or 或         $and 与
db.<collection_name>.find( { "属性" : { $gt : value } } )#查询符合大于value 文档
db.<collection_name>.find( { "属性" : { $lt : value1, $gt : value2 } } ) #查询大于value2 小与value1文档
limit()设置显示数据的上限
db.<collection_name>.find().limit(number(每页显示的条数))
skip()用于跳过指定数量的数据
db.<collection_name>.find().limit(number) . skip( number(页码-1) *  每页显示的条数 )
sort() 方法可以通过参数指定排序的字段,并使用 1 和 -1 来指定排序的方式,其中 1 为升序排列,而 -1 是用于降序排列。
db.<collection_name>.find().sort({"属性":1})

---$or与$and使用方式相同,后面跟的都是一个数组,数组里面是各种条件
db.<colleection_name>.find( {$or:[ { key:{ $lt:value } } , {key:{$gt:value} } ] } )

.__删除集合
如果一个数据库中只有一个集合,那么删除这个集合的同时数据库也会被删除。
————-———------——————--—————-----————-----—————----————
                                    文档之间的关系
  一对一 (one to one)
       -在MongoDB 可以通过内嵌文档的形式来体现出一对一
db.WifeAndHusband.insert( [ { "username" : "黄蓉" , "husband" : { "name" : "郭靖" } }, { "username" : "小龙女" , "husband" :{"name":"杨过"} } ] )


  一对多 (one to many)/多对一(many to one)
         用户 ---   订单
        也可以通过内嵌文档来映射一对多的关系
db.users.insert( [ { "username" : "孙悟空" }, { "username" : "猪八戒" } ] )
db.order.insert( { "list" : ["苹果","香蕉","西瓜"], "user_id" : ObjectId("5e006f58954b260eeb5c239d") } )
先通过查询users集合中的孙悟空的_id 的值 再根据_id的值来查询孙悟空的订单

var arr = db.users.findOne( {"username" : "孙悟空" }  )._id

db.order.find( { "user_id" : arr } )

下面的截图是用的roto 3t 一个MongoDB的图形化界面


  多对多(many to many) 和一对多相似
   -分类  --    商品
db.teachers.insert( [ { "tname" : "洪七公" }, { "tname" : "黄药师" }, { "tname" : "龟仙人" } ] )
db.stus.insert( [ { "name" : "郭靖", "teac_ids" : [ ObjectId("5e0074b98c4f18affaf4ac08"), ObjectId("5e0074b98c4f18affaf4ac09") ] }, {"name":"孙悟空","teac_ids":[ ObjectId("5e0074b98c4f18affaf4ac08"),ObjectId("5e0074b98c4f18affaf4ac09"), ObjectId("5e0074b98c4f18affaf4ac0a") ] } ] )


-------------------------------------------------------------------------------------------------------------
导出数据集合
D:\mongodb\bin\mongoexport -d 数据库名字 -c 集合名字 -o D:\Employee.json //导入d盘 文件名为Employee.json

个人随手学习笔记排版有些乱 * ~ * 希望以上内容能对你有所帮助。。。。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值