MongoDB-操作

1.1 创建db
>use db_name
1.2 展示db
>show databases
1.3 删除db
>db.dropDatabase()
1.4 创建集合
>db.createCollection(name, options)
1.5 删除集合
>db.COLLECTION_NAME.drop()
1.6 集合计数
>db.COLLECTION_NAME.count()
1.7 重命名集合
>db.COLLECTION_NAME.renameCollection("NEW_NAME")
1.8 展示集合
>show collections
1.9 清空集合
>db.COLLECTION_NAME.remove({})
1.10 创建索引
>db.COLLECTION_NAME.ensureIndex(keys[,options])//createIndex
  • unique bool 是否唯一
  • name 索引名
  • dropDups bool 是否删除重复记录
  • sparse 不存在的字段数据不启用索引
  • background 建索引过程会阻塞其它数据库操作
1.11 展示索引
>db.COLLECTION_NAME.getIndexes()
1.12 删除索引
>db.COLLECTION_NAME.dropIndex("INDEX-NAME")
1.13 清空索引
>db.COLLECTION_NAME.dropIndex()


2.1 排序
>db.collection_name.find().sort({KEY:1})

1正序;-1倒序

2.2 集合查询

使用$in或$nin

>db.collection_name.find({"id":{$in:[123,4,56]}}).sort({"price":1})
2.3 正则表达式
var keywords = ["xd", "sd", "ad"],
    regex = keywords.join("|");

db.collection_name.find({
    "category": {
        "$regex": regex, 
        "$options": "i"
    } 
});

设置 $options $i ,不区分大小写

>db.collection_name.find({KEY:{$regex:"PARTEN"}})

等价于

>db.collection_name.find({KEY:/PARTEN/})
2.4 比较
  • $gt:大于
  • $lt:小于
  • $gte:大于或等于
  • $lte:小于或等于
  • $eq =
  • $ne !=
>db.collection.find({ "field" : { $gt: value } } ); 
2.5 条件与或

$or

>db.collection.find({$or: [{"field" : { $gt: value },  "field" : { $lt: value }}]}); 

与使用并写即可

>db.collection.find({"field" : { $gt: value },  "field" : { $lt: value }}); 
2.6 键

$exists 判断是否存储KEY

//判断不为空
db.COL.find({"id":{"$ne":null}})
db.COL.find({"id":{"$exists":true}})

$size KEY的长度

3.1 更新

使用$set更新指定字段,否则覆盖更新

4.1 分页

使用sort,skip和limit三者结合实现;即:

>db.collection.find({field:value}).sort({id:1}).skip(offset).limit(size)
4.2 最大值

使用sort逆序,然后limit(1)

4.3 最小值

使用sort正序,然后limit(1)

Golang

5.1 所有{}都需要使用bson.M{}替换
func f() {
    sel := bson.M{"name": *(req.Name)}
    sel["$or"] = []bson.M{bson.M{"star": bson.M{"$gte": *req.Star}}, bson.M{"comment_grade": bson.M{"$gte": req.Star}}}
    fields := bson.M{"scenic_id": 1,
        "name":                1,  
        "address":             1,
        "star":                1,
        "price":               1,
        "image_url":           1}

    sort := bson.M{"price": -1, "star": -1} 
    col := newSess.DB(DB_NAME).C(COLLECTION)
    err := col.Find(sel).Select(fields).Sort(sort).Limit(SIZE).All(&hotel)
    //...
}
5.2 All,One使用struct类型,否则无法转换数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值