MongoDB 常用命令总结
简单的的增删改查数据
在查询结果中指定显示或者不显示某个字段
例如,我们希望在lessons集合中查找所有数据,但是不希望在返回结果中包含slides字段;因为slides是一个巨长的以base64表示的图片数组,影响查询结果的阅读。
那么我们就可以在queryobject后面跟上一个参数。如下:
db.lessons.find({},{slides:0});
同样也可以明确指定显示哪些字段:
db.bios.find( {}, {name:1,contribs:1,_id:0} )
比较操作–大于和小于
我们要查询时间范围在startTime和endTime间的数据记录,同时要求Content内容是数字1到5。
db.wemessages.find({$and:[ {CreateTime:{$gt:(startTime.getTime()/1000).toString()}}, {CreateTime:{$lt:(endTime.getTime()/1000).toString()}}, {Content:{$in:['1','2','3','4','5']}} ]} );
这里我们使用了$and逻辑操作符,和$gt,$lt,$in比较操作符。
有关MongoDB的操作符,参见:http://docs.mongodb.org/manual/reference/operator/query/
更新一条记录的某些属性
使用$set表示只更新指定的字段,而不修改其他字段,我们一般情况下都会是这种意图。
db.lessons.update({},{$set:{'course_id':'c.101'}});
更新多条记录
使用{multi:true}
db.lessons.update({},{$set:{'course_id':'c.101'}},{multi:true}); db.muusers.update({username:'tom'},{$set:{mobile:'6508639713'}},{multi:true});
排序查询结果
使用sort方法
db.muusers.find().sort({firsttime:-1});
-1降序,1升序
清爽地查看查询结果
使用pretty方法
db.lessons.find({lesson:1},{slides:0,mp3voice:0,wavvoice:0,wavvoicemin:0}).pretty();
查看不存在某个字段的记录
使用$exists
db.questions.find({'sequence_id':1,'pngslide':{$exists:false}}); db.mycollection.find({"price":{"$exists":false}})
限定查询结果个数limit,以及跳过开始的多少条记录skip
使用limit和skip
db.translation_memory.find({mp3voice:{$exists:false}},null,{limit:100});
删除collection中的所有内容
使用collection的remove方法
db.collection.remove();
得到collection中一个字段的长度
链式调用
db.lessons.find({lesson:1}).toArray()[0].slides.join('').length
Collection操作
更名collection
使用renameCollection方法
db.quizzes.renameCollection('questions');
删除一个字段
使用$unset
db.questions.update({},{$unset:{quiz_name:1}},{multi:true}); db.learning_progress.update({},{$unset:{lesson:1}},{multi:true}); db.lessons.update({},{$unset:{wavvoice:1,wavvoicemin:1}},{multi:true});
修改一个字段的名称
使用$rename
db.students.update({_id:1},{$rename:{'nickname':'alias','cell':'mobile'}})
注意:有些MongoDB的关键词不能用做Collection的名称,例如:group。
以上所述就是本文的全部内容了,希望大家能够喜欢。