MongoDB之旅(四)深入学习
MongoDB之旅(四)深入学习
tips:
SKU:Stock keeping Unit,最小存货单位。
db.categories.find({_id:{$in:product['category_ids']}});
db.products.renameCollection("store_products");
db.createCollection("users.actions",{capped:true,size:1024});
db.user.actions.find().sort({"$natural":-1});
db.system.namespaces.find(); db.system.indexes.find();
MongoDBV2.0中,BSON文档的大小被限制在16MB。便于设计出良好的数据模型;性能有关。
db.products.find({'slug':'wheel-barrow-9092'}); = sql中like查询
db.users.find({first_name:"Smith",age:40}); 与查询
db.users.find({age:{$gte:0},age:{$lte:30}}); db.users.find({age:{$gte:0,$lte30}});
--------------------------------------------------------
其它:
集合操作符:$in,$all,$nin;
布尔操作符:$ne,$not,$or,$and,$exits;
上面这些应该足够日常使用;还有一些更加深入的查询方式,在此不再继续介绍了。
再多介绍一下投影技术:
db.users.find({},{username:1}); //返回的结果集中只包含2个字段:_id和username;
db.users.find({},{addresses:0,payment_methods:0});//返回的结果集对象不含addresses和payment_methods2个字段
db.products.find({},{reviews:{$slice:12}});//返回评论中头12篇
db.products.find({},{reviews:{$slice:-5}});//返回评论中后5篇
db.products.find({},{reviews:{$slice:[24,12]}});//跳过前24篇后的12篇文章
sort中-1为降序;1为升序。
db.products.distinct("tag");
--------------------------------------------------------
聚合指令:group函数; map-reduce函数;
原子文档处理:没有事务的MongoDB提供了原子的方式处理文档:findAndModify命令。
db.products.update({price:{$lte:10}},{$addToSet:{tags:'cheap'}});//基本上,更新操作符是前缀,查询操作符通常是中缀。
upsert:没有插入,存在update,限于一条记录。