MongoDB 常用命令总结
在查询结果中指定显示或者不显示某个字段
例如,我们希望在 lessons 集合中查找所有数据,但是不希望在返回结果中包含 slides 字段;因为 slides 是一个巨长的以 base64 表示的图片数组,影响查询结果的阅读。
那么我们就可以在 query object 后面跟上一个参数。如下:
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},参见: http://www.lai18.com/content/411017.html
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。