您的位置:首页 > 数据库 > Mongodb

mongodb基础语法(增删改查)

2017-12-18 15:23 609 查看

1 创建删除db/collection

help                --显示下面的帮助
db.help()           --操作数据库的帮助
db.mycoll.help()    --操作collection的帮助

--DDL,关键字和sql相似
use test;                       --自动创建test
db.tl.insert("name","kubi");    --自动创建t1
db.t1.renameCollection("t2");   --重命名为t2
db.t1.drop();                   --删除t1,如果test没有其他collection,也自动删除


2 增改删

--插入:insert/insertOne/insertMany,
db.t1.insertMany([
{"name":"name1", "sex":"m", "age":19, "course":["chinese","mathematics","english"]},
{"name":"name2", "sex":"f", "age":20, "course":["chinese","mathematics","english"]},
{"name":"name3", "sex":"m", "age":21, "course":["chinese","mathematics","english"]},
{"name":"name3", "sex":"f", "age":22, "course":["chinese","mathematics","english"]}
])

--注意insert和insertOne方法的结果提示不同,其他差别未知,后面update/delete也是这种差别,可自行测试
> db.t1.insert({"a":"1"});          -- update/remove是这种提示
WriteResult({ "nInserted" : 1 })

> db.t1.insertOne({"a":"1"});       --updateOne/updateMany/deleteOne/deleteMany是这种提示
{
"acknowledged" : true,
"insertedId" : ObjectId("5a3762a85c029ceb2e42371d")
}

--更新,updateOne/Many相当于update的multi等于false/true
--update_bool:如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入
db.t1.update( query, update[, update_bool, multi_bool]);
--以下两种写法都可以
db.t1.update({"sex":"m"}, {$set: {"sex":"n"}}, false, true);
db.t1.update({"sex":"m"}, {$set: {"sex":"n"}}, {multi:true});

--remove和deleteMany的效果相同,结果提示不同(同上),删除一条用deleteOne
db.t1.remove({"sex":"m"});
db.t1.deleteMany({"sex":"m"});


3 查询

--pretty()树形显示
db.t1.find().pretty();

--只显示name字段,sort/skip/limit无论位置先后,执行顺序:sort->skip->limit
db.t1.find({},{"name":1,_id:0}).sort({"name":1}).skip(3).limit(2);

--比较运算符:$gt/$lt/$gte/$lte/$eq/$ne
db.t1.find({"age":{$lt:20}});

--$in/$nin/$all/$type/$size/$exists
db.t1.find({"course":{$in:["chinese","mathematics","physics"]}});  --包含array中一个即可

db.t1.find({"course":{$all:["chinese","mathematics"]}});   --要求包含array里所有

--数据类型详见http://www.runoob.com/mongodb/mongodb-operators-type.html
db.t1.find({"age":{$type:16}});        --查找年龄是整数的记录,32-bit integer

db.t1.find({"course":{$size:3}});  --查找course长度为3的记录

db.t1.find({"course":{$exists:ture});  --存在course字段的记录,可选值:true/false,等于1/0

db.t1.find({"course.2":{$exists:1});   --查找course长度大于等于(lte)3的记录


4 字段操作

--删除sex字段,用unset关键字
db.t1.update({}, {$unset: {"sex":""}}, false, true);

--lng的类型改为int,改为float用parseFloat。注意:原来没有lng字段的document会加上lng:NaN
db.t1.find({}).forEach(
function(x) {
x.lng = parseInt(x.lng);
db.mycoll.save(x);
})
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mongodb 增删改查