D:\php\MongoDB\bin> mongod --dbpath d:/php/MongoDB/data --启动MongoDB服务
mongo 127.0.0.1 ---连接MongoDB
> show dbs --显示数据库
> use dbName --使用数据库
> show collections --显示集合
D:\php\MongoDB\bin> mongod --dbpath d:/php/MongoDB/data --启动MongoDB服务
mongo 127.0.0.1 ---连接MongoDB
> show dbs --显示数据库
> use dbName --使用数据库
> show collections --显示集合
GridFS是MongoDB的一个内置功能,它提供一组文件操作的API以利用MongoDB存储文件,GridFS的基本原理是将文件保存在两个Collection中,一个保存文件索引,一个保存文件内容,文件内容按一定大小分成若干块,每一块存在一个Document中,这种方法不仅提供了文件存储,还提供了对文件相关的一些附加属性(比如MD5值,文件名等等)的存储。
有人说,编译器的规范叫做"语法规则"(grammar),这是程序员必须遵守的;而编译器忽略的部分,就叫"编程风格" (programming style),这是程序员可以自由选择的。这种说法不完全正确,程序员固然可以自由选择编程风格,但是好的编程风格有助于写出质量更高、错误更少、更易于 维护的程序。

slf4j入口就是众多接口的集合,他不负责具体的日志实现,只在编译时负责寻找合适的日志系统进行绑定。具体有哪些接口,全部都定义在slf4j-api中。查看slf4j-api源码就可以发现,里面除了public final class LoggerFactory类之外,都是接口定义。因此,slf4j-api本质就是一个接口定义。
4种循环 for、while、until、select,如果想要提早结束循环,可在循环中使用break命令。执行break时,会跳出一层的循环,如果想跳出多层循环,可在break命令之后加上层数n(n一定要大于或等于1)。
while循环的语法:
while 条件测试 do 命令区域 done
Golang 内建的 close 方法可以关闭 channel,如果往已经关闭的 channel 发送数据,则会报错:panic: close of closed channel.
看如下代码,在一段时间内,生产者可以不断往 channel 写入数据,消费者进行处理,一段时间后 channel 关闭了,这个时候如果还有数据往 channel 发送,程序就会报错。
package main
import (
"fmt"
"sync"
"time"
)
func main() {
jobs := make(chan int)
var wg sync.WaitGroup
go func() {
time.Sleep(time.Second * 3)
close(jobs)
}()
go func() {
for i := 0; ; i++ {
jobs <- i
fmt.Println("produce:", i)
}
}()
wg.Add(1)
go func() {
defer wg.Done()
for i := range jobs {
fmt.Println("consume:", i)
}
}()
wg.Wait()
}
for的语法结构如下:
for 变量 in 串行 do 命令区域 done
case的语法结构:
case 待测项 in 样式串1] 命令区域1 ;; 样式串2) 命令区域2 ;; 样式串3) 命令区域3 ;; *) 命令区域 ;; esac