Update
db.collection.update(
,,{
upsert: ,multi: ,writeConcern:
}
)
1.部分更新
db.teacher_collection.update({name:"cobble"},{age:55}) 更新时,新的对象会覆盖原有的对象,上面的更新会把cobble对象的其他字段都删除,最后只有age字段;如果需要部分更新,使用 $set
db.teacher_collection.update({name:"cobble"},{$set:{age:55}})
删除数据
db.collection.remove(
,{
justOne: ,writeConcern: ,collation:
}
)
remove必须带有参数,如果想删除所有数据就drop掉这个表。
创建全文索引
mongodb中一个集合只能包含一个全文索引
db.collection.createIndex({key:"text"}); //在key字段上建立全文索引
db.collection.createIndex({key_1:"text",key_2:"text"}); //在key_1和key_2字段上建立全文索引
db.collection.createIndex({"$**":"text"}); //在集合中所有字段上建立全文索引
db.collection.createIndex( { a: 1,"$**": "text" } ) //与所有文本索引一样,通配符文本索引可以是复合索引的一部分
使用全文索引查询
db.collection.find({$text:{$search:"coffee"}}); //全文检索包含coffe的记录
db.collection.find({$text:{$search:"coffee cup"}}); //全文检索包含coffee或cup的记录,空格表示或
db.collection.find({$text:{$search:"coffee cup -cat"}}); //全文检索包含coffee或cup,但包含cat的记录
db.collection.find({$text:{$search:""coffee" "cup""}}); //全文检索包含coffee和cup的记录,双引号表示且
相似度查询
//查询出相似度,并根据相似度进行排序
db.collection.find({$text:{$search:"coffee cup"}},{score:{$meta:"textScore"}}).sort({score:{$meta:"textScore"}});
全文索引的限制
- 每次查询只能使用一个
$text 查询
-
$text 查询不能出现在$nor 查询中
- 查询中如果使用了
$text ,hint则不再起作用
- mongodb全文检索还不支持中文
索引的稀疏性
db.collection.createIndex({key:1},{sparse:true})
查找只存在指定字段的数据
`db.collection.find({fieldname:{$exists:true}})
位置索引
mongostat工具
mongostat -h ip:port
profile在项目早期使用,后期数据较大时不建议用,影响性能
在配置文件中配置verbose 来这只日志的详细度,verbose 的值是一个到五个v ,v越多日志记录越详细
权限认证
配置文件中auth = true
创建用户 (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|