村农

莫笑农家腊酒浑,丰年留客足鸡豚。


mongodb及mongoose使用记录

TD-winter

1、使用mongoose时,要试某个字段的值唯一,则

var devSchema = new Schema({
    devName : {type:String,unique:true, dropDups: true},
    devID:String
    })

结果发现没用,原因是,unique字段是后来加上去的,则要去mongodb的shell脚本中执行命令

    db.集合名称.ensureIndex({"字段名称":1},{"unique":true});

结果还是报错:

> db.devs.ensureIndex({"devName":1},{"unique":true})
{
        "ok" : 0,
        "errmsg" : "E11000 duplicate key error collection: air.devs index: devName_1 dup key: { : \"84f3eb661c3f\" }",
        "code" : 11000,
        "codeName" : "DuplicateKey"
}

搜索得知:如果建立唯一索引的时候,有数据重复,则会报错,所以要先把重复的数据删除。然后再执行shell命令,结果正确:

> db.devs.ensureIndex({"devName":1},{"unique":true})
{
        "createdCollectionAutomatically" : false,
        "numIndexesBefore" : 1,
        "numIndexesAfter" : 2,
        "ok" : 1
}
>

然后mongoose中的设置也能正常使用。

2、mongodb后台守护进程启动命令

mongod --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/logs.log --logappend --port=6699 --fork --auth

其中 --fork 表示开启后台守护进程, --auth 表示开启权限认证访问;

3、mongodb 命令访问

mongo --port 27017 -u "myUserAdmin" -p "abc123" --authenticationDatabase "admin"

其中 -u 表示用户名, -p 表示密码, --authenticationDatabase 表示授权的表

4、mongodb 导出数据

mongoexport -h localhost:27017 -u root -p 123456 -d mydb1 -c c1 -o E:/wmx/mongoDump/c1.json

-h 主机名, -u 用户名, -p 密码, -d 库, -c 表, -o 导出位置

5、mongodb 导入数据

mongoimport --host 127.0.0.1 --port 27017 -u root -p 123456 --db  zhibo -c user_watched --type json --file C:\tools\bk\user_watched.json