mongo 使用基础
Laiyong Wang Lv6

多用于约束较少 || 频繁修改结构的实体

实际使用时,尽量只做插入,别做更新
查询:根据条件虚查找出最后一条记录即可

1
db.wanglaiyong.findOne({$query:{'name':'王来勇'},$orderby:{$natural:-1}})

优点:根据条件查询,返回所有结果,可以清晰的知道那个时间点对该数据进行了什么操作,而且自带备份(基于这点,所以做日志非常完美)

常用知识:
Bson 跟 json 类似但又不一致

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
//插入
db.wanglaiyong.insert(Bson)
db.wanglaiyong.save(Bson)//可指定 _id ,不指定的话,跟 insert 一样
//删除
//第二个参数,选填{justOne: <boolean>,writeConcern: <Bson>,collation:<Bson>}
db.wanglaiyong.remove({'name':'王来勇'});删除所有匹配的
db.wanglaiyong.deleteOne({'name':'王来勇'});删除第一个匹配的
db.wanglaiyong.deleteMany({'name':'王来勇'});删除所有匹配的
//更新
db.wanglaiyong.update(
<query>,//匹配条件
<update>,//更新内容的json
{
upsert: <boolean>,//未匹配是否插入新数据,默认false
multi: <Bson>,
writeConcern: <Bson>
}
)
//查询
db.collection.find(query, projection);
db.collection.find({'name':'王来勇'});//第二个参数默认省略
db.collection.findOne({'name':'王来勇'});
//创建索引
db.wanglaiyong.createIndex({"name":1,"school":-1});//1 为指定按升序创建索引, -1 为指定序按降序来创建索引,多个key则为组合索引
$li-margin-bottom = 0.8rem $post-tool-button-width = 2.5rem .post-tools-container { padding-top var(--component-gap) .post-tools-list { li { margin-bottom $li-margin-bottom &:last-child { margin-bottom 0 } } li.tools-item { position relative box-sizing border-box width $post-tool-button-width height $post-tool-button-width color var(--text-color-3) font-size 1.2rem background var(--background-color-1) border-radius 50% box-shadow 2px 2px 5px var(--shadow-color) cursor pointer &:hover { box-shadow 2px 2px 8px var(--shadow-hover-color) } i { color var(--text-color-3) } &:hover { color var(--background-color-1) background var(--primary-color) i { color var(--background-color-1) !important } } &.toggle-show-toc { display none } &.go-to-comments { .post-comments-count { position absolute top 0 right -1rem display none align-items center justify-content center box-sizing border-box min-width 1.1rem height 1.1rem padding 0 0.2rem color var(--badge-color) font-size 12px background var(--badge-background-color) border-radius 0.4rem +keep-tablet() { display none !important } } } } li.status-item { width $post-tool-button-width height $post-tool-button-width color var(--text-color-3) font-size 1.6rem cursor pointer &.post-lock { cursor default .fa-lock-open { display none color var(--keep-success-color) } &.decrypt { cursor pointer .fa-lock-open { display block } .fa-lock { display none } } } } } }