mongodb基础语法(增删改查)

来源:互联网 发布:淘宝网店转让流程 编辑:程序博客网 时间:2024/06/06 12:58

1 创建删除db/collection

help                --显示下面的帮助db.help()           --操作数据库的帮助db.mycoll.help()    --操作collection的帮助--DDL,关键字和sql相似use test;                       --自动创建testdb.tl.insert("name","kubi");    --自动创建t1db.t1.renameCollection("t2");   --重命名为t2db.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的效果相同,结果提示不同(同上),删除一条用deleteOnedb.t1.remove({"sex":"m"});db.t1.deleteMany({"sex":"m"});

3 查询

--pretty()树形显示db.t1.find().pretty();--只显示name字段,sort/skip/limit无论位置先后,执行顺序:sort->skip->limitdb.t1.find({},{"name":1,_id:0}).sort({"name":1}).skip(3).limit(2);--比较运算符:$gt/$lt/$gte/$lte/$eq/$nedb.t1.find({"age":{$lt:20}});--$in/$nin/$all/$type/$size/$existsdb.t1.find({"course":{$in:["chinese","mathematics","physics"]}});  --包含array中一个即可db.t1.find({"course":{$all:["chinese","mathematics"]}});   --要求包含array里所有--数据类型详见http://www.runoob.com/mongodb/mongodb-operators-type.htmldb.t1.find({"age":{$type:16}});        --查找年龄是整数的记录,32-bit integerdb.t1.find({"course":{$size:3}});  --查找course长度为3的记录db.t1.find({"course":{$exists:ture});  --存在course字段的记录,可选值:true/false,等于1/0db.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:NaNdb.t1.find({}).forEach(     function(x) {        x.lng = parseInt(x.lng);         db.mycoll.save(x);    })
原创粉丝点击