MongoDB无模式文档型数据库
1.批量插入insert
1 2 3 4 5
| db.person.insert([ {name:"Mary", age:21, status:"A"}, {name:"Lucy", age:89, status:"A"}, {name:"Jacky", age:30, status:"A"} ]);
|
2.文档查询find
1 2 3 4 5 6 7
| db.person.find(); db.user.find( {age:{$gt:18}}, {name:1,address:1} ).limit(5); db.person.find({status:"X"}); db.person.find({age:{$gt:40}});
|
MongoDB运算符:大于$gt,小于$lt,大于等于$gte,小于等于$lte,不等于$ne,包含于$in,不包含于$nin
1 2 3 4 5 6 7
| db.person.find({tag:'fruit'});//单个元素匹配 db.person.find({tag.0:'fruit'});//多个元素匹配 db.person.find({"access.level":5});//子文档条件,使用“.key”的方法去访问 //复合查询: db.person.find({$and:[{type:"food"},{price:{$lt:95}}]}); db.person.find({$and:[{age:{$gt:30}},{name:"Lucy"}]}); db.person.find({$or:[{status:"A"},{age:30}]});
|
3.文档更新update
1 2
| db.collection.update(query,update,{upsert:boolean,multi:boolean}) db.person.update({age:{$lt:30}},{$set:{status:"X"}},{multi:true})//$gt为大于,$lt为小于
|
4.文档更新save
命令可以更新或插入一个新文档,只能针对一个文档进行操作
db.person.save({name:”Tony”,age:12,gender:”man”});
5.文档移除remove
1 2 3 4 5 6 7
| db.collection.remove( qurey, justOne ) db.person.remove( {status:"D"} )
|
6.游标 cursor
find命令并不直接返回结果,而是返回一个结果集的迭代器
想要获得结果,必须使用next方法来遍历游标
1 2 3 4 5 6 7 8 9
| var myCursor = db.person.find({status:"A"}); var myDocument = myCursor.hasNext()?myCursor.next():null; if(myDocument){ var myItem =myDocument.item; print(tojson(myItme)); } var myCursor = db.person.find({status:"A"}); myCursor.forEach(printjson);
|
a)限定条件
limit:设定返回结果集中的最大文档数量;
db.collection.find().limit(Num);
b)结果集
条件:JSON对象,格式=>{字段:值},值为1时表示需要返回,值为0时表示不需要返回
db.person.find({查询条件},{字段条件})
db.person.find({},{name:1});