db.createCollection("mycol",{capped:true,autoIndexId:true,size:6142800,max:10000})
表示创建名为mycol的固定集合,以optionId作为索引,集合空间大小为6142800KB,最多存储10000个文档。
db.mycol.insert(name:"ljs_coding")
3.查看集合:show collections
4.删除集合:db.mycol.drop(),返回true表示删除成功
5.插入文档:
document=({name:"wust",password:"zz",location:"wuhan"});
db.mycol.insert(document)
注意:此处定义有小括号有分号。
6.更新文档:
比如:db.mycol.update({name:"wust"},{$set:{password:"hh"}},false,true)将所有name为"wust"的记录中password都改为"hh"。
db.mycol.update({name:"wust"},{$set:{password:"zz"}},true,true),由于此时已有name为"wust"的记录,所以不会增加,结果为将所有记录的password改为"zz"
db.mycol.update({name:"hust"},{$set:{password:"zz"}},true,true),由于此时没有name为"hust"的记录,所以新增一条。
注意:3.2版本之后提供updateOne()和updateMany()方法删除单条和多条
用传入的文档替换已有的文档。
7.删除文档:deleteOne()和deleteMany()
比如:db.mycol.deleteOne({name:"wust"})和db.mycol.deleteMany({name:"wust"})
8.查看文档:findOne()和find()
比如:db.mycol.find({count:{$lt:10}}).pretty()格式化返回count<10的所有记录。
比如: db.mycol.find({password:"zz",$or:[{count:{$lt:0.0}},{count:{$gt:3.0}}]})返回的是password为"zz"且count<0或>3的所有记录。
注意:一定要检查大括号匹配,如果写成了{password:"zz"},{$or:[{count:{$lt:0.0}},{count:{$gt:3.0}}]}就不是一条查询语句了,查询出的是password为zz的所有记录,后面的限制条件失去作用,而且返回的也并非所有属性,测试时只返回了_Id。
上图也是同样的错误,所以识别成了projection,都是粗心的小错误,注意避免。
db.collection.find(query, {title: 1, by: 1}) // inclusion模式 指定返回的键,不返回其他键 db.collection.find(query, {title: 0, by: 0}) // exclusion模式 指定不返回的键,返回其他键
db.collection.find(query, {_id:0, title: 1, by: 1}) // 正确
querydb.collection.find({}, {title: 1})
最后一种是不指定查询条件的情况,需要指定projection。