首先是概念:集合=表,db还是db
常用的较为简单的mongo的命令
db.collection.insert({});
基本命令格式
查看集合列表:
show collections
插入数据:
db.test.insert({name:"test",age:"30"});
往test集合中插入一条 名字:test 年龄:30的记录
批量插入可使用[ ]来区分数据:
db.test.insert([{name:"test",age:"20"},{name:"test1",age:"22"}]);
查找&&替换
db.test.update({age:{$lt:30}},{$set:{status:"x"}},{upsert:true,multi:true});
db.test.update({age:{$lt:30}},{$set:{status:"x"}} upsert=false multi=true);
以上两条命令需要验证下,貌似都可以查找并替换,区别在于后面的参数的写法
upsert:不存在该文档则创建
multi:递归查找并替换
精确匹配数组
db.test.find({'tags.0':fruit'});
在数组中匹配指定索引或位置与条件相等的文档,使用点符号匹配所有tags是一个数组,且第一个元素是“fruit”的文档;
复合查询:(and同时满足)
db.test.find({$and:[{age:{$gt:30}},{name:"Lucy",status:"x"}]});
同时满足年龄大于30,且名字是Lucy的女性
(or满足其一即可)
db.test.find({$or:[{age:{$ge:30}},{name:"Lucy"}]});
满足只要年龄大于30或者叫“Lucy”的条目全部列出
限制返回结果(文档的数量)
db.test.find().limit(2);
test集合中的前2个文档
(返回指定的字段)
db.test.find({},{name:1});
查询test集合中所有有name字段的条目,
name:1 这里的数值,1代表需要返回,0表示不需要返回
cursor游标遍历查询方法
var myCursor=db.test.find({name:"Lucy"});
myCursor.forEach(printjson);
阅读(900) | 评论(0) | 转发(0) |