MongoDB使用笔记

Mongodb查询字段为null和字段缺失

使用field:null可以查询出字段为null和字段缺失的文档
使用filed:{$type:'null'}可以查询字段为null类型的文档
使用field:{$exists:false}可以查询字段不存在的文档

查询数组(array)

使用field:[a1, a2]查询与内容嗯相匹配的文档
使用field:{$all:[a1, a2]}匹配的是文档中字段包含数组中内容的文档
使用field:{$elemMatch:{$gt:1, $lt:2}}匹配的文档中字段的单独的元素符合
$size可以指定查询的数组的length

和数组相关的操作符

$push 向查询到的数组增加一条内容.
$each$push配合使用, 向数组添加多条内容.例子
db.test.updateOne({id:1}, {$push:{myarray:{$each:[1, 2, 3, 4, 5]}}})修改collection中id为1的第一条
文档向文档中插入1, 2, 3, 4, 5.
$slice也是要和$push配合使用, 截取最后的几位数字例子:

db.test.updateOne(
                    {id:1}, 
                    {$push:{myarray:{
                    				$each:[1, 2, 3, 4, 5, 6, 7, 8, 9],
                    				$slice:-10,
                    				}}
                    }
)

$sort也和$push, 和用, 且需要$each, 用来安元素排序, 之后一般通过, $slice截取.

db.test.updateOne(
                    {id:1}, 
                    {$push:{myarray:{
                    				$each:[{num:1, num:2, num:3}],
                    				$slice:-10,
                    				$sort:{num:-1}
                    				}}
                    }
)

倒叙排列截取左后十个

$addToSet以集合的方式添加到数组中.
$pop删除, $pop:{item:1}, 1 最后一个, -1第一个


$set, $unset设置取消设置

mongodb的命名

文档的键: 不能含有\0(空字符), . ,$有特殊用法不能使用
集合的命名: 不能是空字符串"", 不能含有\0(空字符), 不能以system.开头,不能包含$
数据库的命名: 不能是空字符串"", 基本上只能使用ascii中的数字和字母.最多64个字节

mongodb 时间格式

使用new Date()创建时间3.6, 2.6版本创建的都是标准时间, 比现在的时间少8小时创建时间的, 注意一下.
尽量使用代码存储, 不要使用shell

参考字段DBRef

DBRef装饰的id可以使用fetch获取元内容.仅在shell中使用

find查询显示的个数

用DBQuery.shellBatchSize 指定

pymongo

pythond的数字类型int, 在mongodb中NumberLong最大支持 -263 到 263- 1 超出这个范围的数字不能存入

Decimal128()

类似与decimal可以保存高精度数字
元组的使用与Decimal不相同.多使用字符串就好了.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值