bson

MongoDB GUI( Robo 3T) Shell使用及操作

穿精又带淫゛_ 提交于 2020-08-18 10:08:28
Robo 3T 下载及使用 之前叫 Robomongo,后面被收购了,改名 Robo 3T 。 下载链接: https://robomongo.org/download (需要翻墙) 安装步骤省略,下一步下一步... 图形界面,连接默认,取个名字就行。 连接成功,可以愉快的使用了,不用总是敲命令了,简洁方便,多种显示。 软件右边可以切换显示样式,慢慢折腾。 Robo 3T Shell 操作 右键数据库打开Shell 下面玩一下没用的语法,绿色按钮为运行命令。 1、批量插入(默认是不支批量操作,只能用for循环。) 2、$type 操作符,基于BSON类型来检索集合中匹配的数据类型,并返回结果。 先增加一些数据,然后查询出来 (同一界面,需要选中执行的一行,不然会一直执行第一个命令。) 3、Limit与Skip的用法 查询文档中两条记录 第一个 {} 放 where 条件,为空表示返回集合中所有文档。 第二个 {} 指定那些列显示和不显示 (0表示不显示 1表示显示)。 查询显示第2、3条文档数据 skip()方法默认参数为 0 。 skip 和 limit 结合就能实现分页。 排序 sort() 方法 索引 ensureIndex() 方法 多个字段索引: db.student.ensureIndex({"name":1,"hobby":-1}) 聚合 aggregate()

用过 mongodb 吧, 这三个大坑踩过吗?

别来无恙 提交于 2020-08-16 19:07:18
一:背景 1. 讲故事 前段时间有位朋友在微信群问,在向 mongodb 中插入的时间为啥取出来的时候少了 8 个小时,8 在时间处理上是一个非常敏感的数字,又吉利又是一个普适的话题,后来我想想初次使用 mongodb 的朋友一定还会遇到各种新坑,比如说: 插入的数据取不出来,看不爽的 ObjectID,时区不对等等,这篇就和大家一起聊一聊。 二: 1号坑 插进去的数据取不出来 1. 案例展示 这个问题是使用强类型操作 mongodb 你一定会遇到的问题,案例代码如下: class Program { static void Main(string[] args) { var client = new MongoClient("mongodb://192.168.1.128:27017"); var database = client.GetDatabase("school"); var table = database.GetCollection<Student>("student"); table.InsertOne(new Student() { StudentName = "hxc", Created = DateTime.Now }); var query = table.AsQueryable().ToList(); } } public class Student {

MongoDB文档操作(5)

只谈情不闲聊 提交于 2020-08-14 05:32:24
添加文档 语法: db.集合名.insert({k1:"v1", k2:"v2"....}) 注意: (1)文档就是键值对,数据类型是BSON格式,支持的值更加丰富。 比如:db.集合名.insert({name:"bashlog", spc:{weight:100, address:"henan"}}) (2)在添加的文档里面,都有一个'_id'的键,值为对象类型。 ObjectId类型: 每个文档都有一个_id字段,并且 同一集合 的_id值唯一,该字段可以是任意类型的数据,默认是一个ObjectId对象。 ObjectId对象数据组成: 时间戳|机器码|PID|计数器 _id的键值我们可以自己输入,但是不能重复 注意:在插入数据的时候,如果_id的值重复则会报错。 (3)可以使用js代码来完成批量插入文档。 删除文档 语法: db.集合名.remove({条件}) # 不写条件等于删除所有文档 示例1:删除collect1集合中name等于AK3的文档 db.collect1.remove({name:"ack3"}) 示例2:删除collect1集合中年龄大于25的文档 使用操作符完成 常用操作符 $lt(<), $lte(<=), $gt(>), $gte(>=), $ne(<>), $in, $nin, $or, $not, $mod(取模), $exists,

MongoDB学习(二) --- 概念解析、命令行基本操作

两盒软妹~` 提交于 2020-08-13 16:10:51
1、基础概念 下表将帮助您更容易理解Mongo中的一些概念: SQL术语/概念 MongoDB术语/概念 解释/说明 database database 数据库 table collection 数据库表/集合 row document 数据记录行/文档 column field 数据字段/域 index index 索引 table joins 表连接,MongoDB不支持 primary key primary key 主键,MongoDB自动将_id字段设置为主键 1.1、MongoDB 数据类型 数据类型 描述 String 字符串。存储数据常用的数据类型。在 MongoDB 中,UTF-8 编码的字符串才是合法的。 Integer 整型数值。用于存储数值。根据你所采用的服务器,可分为 32 位或 64 位。 Boolean 布尔值。用于存储布尔值(真/假)。 Double 双精度浮点值。用于存储浮点值。 Min/Max keys 将一个值与 BSON(二进制的 JSON)元素的最低值和最高值相对比。 Array 用于将数组或列表或多个值存储为一个键。 Timestamp 时间戳。记录文档修改或添加的具体时间。 Object 用于内嵌文档。 Null 用于创建空值。 Symbol 符号。该数据类型基本上等同于字符串类型,但不同的是,它一般用于采用特殊符号类型的语言。

mongodb高级聚合查询

纵然是瞬间 提交于 2020-08-12 23:13:49
抽空学下mongoDB,感觉就聚合最复杂些,用下面的sql来练练手,并重新布局,方便大家参考学习。 如发现错误,请留言。 菜鸟教程地址:  http://www.runoob.com/mongodb/mongodb-tutorial.html , 转载地址 https://www.cnblogs.com/zhoujie/p/mongo1.html 在工作中会经常遇到一些mongodb的聚合操作,特此总结下。mongo存储oot的可以是复杂类型,比如数组、对象等mysql不善于处理的文档型结构,并且聚合的操作也比mysql复杂很多。 目录 mongo与mysql聚合类比 aggregate简介 aggregate语法 aggregate常用pipeline stage介绍(本文核心) node操作mongo聚合查询(本文核心) mongo与mysql聚合类比  为了便于理解,先将常见的mongo的聚合操作和mysql的查询做下类比: SQL 操作/函数 mongodb聚合操作 where $match group by $group having $match select $project order by $sort limit  $limit sum() $sum count() $sum join $lookup (v3.2 新增)