增加 insert
> for(i=1;i<=10;i++){
... db.c1.insert({'name':'user'+i,'age':i})
... }
> db.c1.find();
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a41"), "name" : "user1", "age" : 1 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a42"), "name" : "user2", "age" : 2 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a43"), "name" : "user3", "age" : 3 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a44"), "name" : "user4", "age" : 4 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a45"), "name" : "user5", "age" : 5 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a46"), "name" : "user6", "age" : 6 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a47"), "name" : "user7", "age" : 7 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a48"), "name" : "user8", "age" : 8 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a49"), "name" : "user9", "age" : 9 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a4a"), "name" : "user10", "age" : 10 }
增加还有一个方法 save 二者直接区别 当id存在的情况下 insert 会返回false save 则会更新原值
删除 remove
remove({'age':1}); 可以在里面跟条件
查找有很多参数
$gt 大于 $lt 小于 $gte 大于等于 $lte 小于等于 $ne 不等于
> db.c1.find({'age':{$gt:5}})
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a46"), "name" : "user6", "age" : 6 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a47"), "name" : "user7", "age" : 7 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a48"), "name" : "user8", "age" : 8 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a49"), "name" : "user9", "age" : 9 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a4a"), "name" : "user10", "age" : 10 }
> db.c1.find({'age':{$lt:5}})
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a41"), "name" : "user1", "age" : 1 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a42"), "name" : "user2", "age" : 2 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a43"), "name" : "user3", "age" : 3 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a44"), "name" : "user4", "age" : 4 }
> db.c1.find({'age':{$gte:5}})
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a45"), "name" : "user5", "age" : 5 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a46"), "name" : "user6", "age" : 6 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a47"), "name" : "user7", "age" : 7 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a48"), "name" : "user8", "age" : 8 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a49"), "name" : "user9", "age" : 9 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a4a"), "name" : "user10", "age" : 10 }
> db.c1.find({'age':{$lte:5}})
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a41"), "name" : "user1", "age" : 1 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a42"), "name" : "user2", "age" : 2 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a43"), "name" : "user3", "age" : 3 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a44"), "name" : "user4", "age" : 4 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a45"), "name" : "user5", "age" : 5 }
> db.c1.find({'age':{$ne:5}})
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a41"), "name" : "user1", "age" : 1 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a42"), "name" : "user2", "age" : 2 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a43"), "name" : "user3", "age" : 3 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a44"), "name" : "user4", "age" : 4 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a46"), "name" : "user6", "age" : 6 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a47"), "name" : "user7", "age" : 7 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a48"), "name" : "user8", "age" : 8 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a49"), "name" : "user9", "age" : 9 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a4a"), "name" : "user10", "age" : 10 }
统计个数 排序 取指定的条数
> db.c1.count();
10
> db.c1.find({'age':{$gt:5}}).count(); 指定条件
5
> db.c1.find({'age':{$gt:5}}).sort({'age':-1}); // -1倒序 1 正序
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a4a"), "name" : "user10", "age" : 10 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a49"), "name" : "user9", "age" : 9 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a48"), "name" : "user8", "age" : 8 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a47"), "name" : "user7", "age" : 7 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a46"), "name" : "user6", "age" : 6 }
> db.c1.find({'age':{$gt:5}}).sort({'age':-1}).skip(2).limit(2); // 查询 从哪条开始取 使用的是 skip() 不像mysql limit(2,2)
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a48"), "name" : "user8", "age" : 8 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a47"), "name" : "user7", "age" : 7 }
当查询一个字段是否为null 时 不存在的字段也会被检索出来 这时候就需要使用$exists
> db.c1.find({'age':{$exists:true}});
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a41"), "name" : "user1", "age" : 1 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a42"), "name" : "user2", "age" : 2 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a43"), "name" : "user3", "age" : 3 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a44"), "name" : "user4", "age" : 4 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a45"), "name" : "user5", "age" : 5 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a46"), "name" : "user6", "age" : 6 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a47"), "name" : "user7", "age" : 7 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a48"), "name" : "user8", "age" : 8 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a49"), "name" : "user9", "age" : 9 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a4a"), "name" : "user10", "age" : 10 }
> db.c1.find({'age':{$exists:false}});
> db.c1.find({'sex':{$exists:true}});
$mod 取余 里面使用的 [] 是操作符 而并非数组
> db.c1.find({'age':{$mod:[2,0]}});
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a42"), "name" : "user2", "age" : 2 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a44"), "name" : "user4", "age" : 4 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a46"), "name" : "user6", "age" : 6 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a48"), "name" : "user8", "age" : 8 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a4a"), "name" : "user10", "age" : 10 }
> db.c1.find({'age':{$mod:[3,0]}});
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a43"), "name" : "user3", "age" : 3 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a46"), "name" : "user6", "age" : 6 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a49"), "name" : "user9", "age" : 9 }
> db.c1.find({'age':{$mod:[2,1]}});
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a41"), "name" : "user1", "age" : 1 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a43"), "name" : "user3", "age" : 3 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a45"), "name" : "user5", "age" : 5 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a47"), "name" : "user7", "age" : 7 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a49"), "name" : "user9", "age" : 9 }
$in 类似传统操作中in 在什么里的筛选出来 $nin 跟$in操作相反 $all 则是完全匹配
> db.c1.find({'age':{$in:[2,1]}});
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a41"), "name" : "user1", "age" : 1 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a42"), "name" : "user2", "age" : 2 }
> db.c1.find({'age':{$in:[2,1,3,5]}});
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a41"), "name" : "user1", "age" : 1 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a42"), "name" : "user2", "age" : 2 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a43"), "name" : "user3", "age" : 3 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a45"), "name" : "user5", "age" : 5 }
> db.c1.find({'age':{$nin:[2,1,3,5]}});
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a44"), "name" : "user4", "age" : 4 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a46"), "name" : "user6", "age" : 6 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a47"), "name" : "user7", "age" : 7 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a48"), "name" : "user8", "age" : 8 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a49"), "name" : "user9", "age" : 9 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a4a"), "name" : "user10", "age" : 10 }
$or 或者 因为默认的语句中含有并且意思 如果我们想查询 name为user1 或者 name为user2的人 $nor 与$or相反
> db.c1.find({$or:[{name:'user1'},{'name':'user2'}]});
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a41"), "name" : "user1", "age" : 1 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a42"), "name" : "user2", "age" : 2 }
> db.c1.find({$nor:[{name:'user1'},{'name':'user2'}]});
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a43"), "name" : "user3", "age" : 3 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a44"), "name" : "user4", "age" : 4 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a45"), "name" : "user5", "age" : 5 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a46"), "name" : "user6", "age" : 6 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a47"), "name" : "user7", "age" : 7 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a48"), "name" : "user8", "age" : 8 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a49"), "name" : "user9", "age" : 9 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a4a"), "name" : "user10", "age" : 10 }
此外还支持正则
> db.c1.find({'name':/user1/});
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a41"), "name" : "user1", "age" : 1 }
{ "_id" : ObjectId("55bcfb82ebe73c24d5cc4a4a"), "name" : "user10", "age" : 10 }
distinct 去重
> db.c1.distinct('name');
[
"user1",
"user2",
"user3",
"user4",
"user5",
"user6",
"user7",
"user8",
"user9",
"user10"
]
update({},{},1,1) update 后面有两个参数 第三个参数 当更新的值不存在 就新增 第四个参数要用魔术方法$set才可以用 表示对所有符合条件的都更新 默认的只会对符合条件的第一条做更改
$inc 自增
db.c1.update({name:'user1'},{$inc:{age:10}});
$unset 删除一个字段
db.c1.update({"name":'user1'},{$unset:{'name':1}}) //1 为true 的意思
$push 从尾部给一个数组压入一个值
$pop 从尾部弹出一个值
$pushAll 压入多个值
$addToSet 去掉重复值
{ "_id" : ObjectId("55bd940eebe73c24d5cc4a4c"), "name" : "user100", "arr" : [ 1, 2, 3 ] }
> db.c1.update({name:'user100'},{$push:{arr:4}})
> db.c1.find();
{ "_id" : ObjectId("55bd940eebe73c24d5cc4a4c"), "arr" : [ 1, 2, 3, 4 ], "name" : "user100" }
> db.c1.update({name:'user100'},{$pop:{arr:1}}) //1 为从尾部删 -1从头部删
> db.c1.find();
{ "_id" : ObjectId("55bd940eebe73c24d5cc4a4c"), "arr" : [ 1, 2, 3 ], "name" : "user100" }
> db.c1.update({name:'user100'},{$pushAll:{arr:[4,5,6]}})
> db.c1.find();
{ "_id" : ObjectId("55bd940eebe73c24d5cc4a4c"), "arr" : [ 1, 2, 3, 4, 5, 6 ], "name" : "user100" }
> db.c1.update({name:'user100'},{$addToSet:{arr:6}}) 发现重复的值压不进去
> db.c1.update({name:'user100'},{$addToSet:{arr:{$each:[7,8,6]}}}) // 压入多个值 与pushAll效果相同 (除了重复值不可以压进)
$pull 直接删值
$pullAll 删除多个值
{ "_id" : ObjectId("55bd940eebe73c24d5cc4a4c"), "arr" : [ 1, 2, 3, 4, 5, 6, 7, 8 ], "name" : "user100" }
> db.c1.update({name:'user100'},{$pull:{arr:1}})
> db.c1.find();
{ "_id" : ObjectId("55bd940eebe73c24d5cc4a4c"), "arr" : [ 2, 3, 4, 5, 6, 7, 8 ], "name" : "user100" }
> db.c1.update({name:'user100'},{$pullAll:{arr:[5,6,7,8]}})
> db.c1.find();
{ "_id" : ObjectId("55bd940eebe73c24d5cc4a4c"), "arr" : [ 2, 3, 4 ], "name" : "user100" }