windows下mongodb基础玩法系列二CURD附加一
- windows下mongodb基础玩法系列一介绍与安装
- windows下mongodb基础玩法系列二CURD操作(创建、更新、读取和删除)
- windows下mongodb基础玩法系列二CURD附加一
目录
集合的创建与返回值
②这一次就不实际操作截图了,按照之前的操作我又走看一遍,这一次留意了一个小的细节。增加内容成功后会返回一个WriteResult({"nInserted":1}),这个对象表示了插入的条数。
增加多个文档的方法
//用数组存放多个文档 var users = [{ "name":"A", "age":32 },{ "name":"B", "age":33 },{ "name":"C", "age":34 }]; //添加数组操作 db.testData.insert(users);
//初始化bulk() var bulk = db.testData.initializeUnorderedBulkOp();//无序列表操作 //var bulk = db.collection.initializeOrderedBulkOp();//有序列表操作 //insert至bulk对象 bulk.insert({ "name":"A", "age":20 }); bulk.insert({ "name":"B", "age":21 }); //调用bulk对象的execute()方法添加文档至集合 bulk.execute();
目录
指定查询与条件查询使用
db.testData.find({$or:[{"name":"A"},{"age":{$in:[33,34]}}]});
嵌入式(Embedded)文档查询的方法
//插入模拟数据 db.testData.insert([{ "name":"unofficial", "age":18, "other":{ "hobby":["eat","drink","play","happy"], "speciality":["hands","legs"] }, "score":[58,59,60] },{ "name":"pushself", "age":100, "other":{ "hobby":["play"], "speciality":["legs"] }, "score":[60,70,80] }]); //成绩分别对应语数外,找到语文成绩小于60的同学的姓名 db.testData.find({"score.0":{$lt:60}},{"_id":0, "name":1}); //把好吃的家伙的名字查出来 db.testData.find({"other.hobby":"eat"},{"_id":0, "name":1});
限制查询
反复的切换光标读取
//执行查找操作 var rs = db.testData.find({}); //遍历 while(rs.hasNext()) { print(tojson(rs.next()));//也可以使用printjson(rs.next()); }
查询的性能问题
//插入一组测试数据 db.testData.insert([ { "_id" : 1, "item" : "f1", type: "food", quantity: 500 }, { "_id" : 2, "item" : "f2", type: "food", quantity: 100 }, { "_id" : 3, "item" : "p1", type: "paper", quantity: 200 }, { "_id" : 4, "item" : "p2", type: "paper", quantity: 150 }, { "_id" : 5, "item" : "f3", type: "food", quantity: 300 }, { "_id" : 6, "item" : "t1", type: "toys", quantity: 500 }, { "_id" : 7, "item" : "a1", type: "apparel", quantity: 250 }, { "_id" : 8, "item" : "a2", type: "apparel", quantity: 400 }, { "_id" : 9, "item" : "t2", type: "toys", quantity: 50 }, { "_id" : 10, "item" : "f4", type: "food", quantity: 75 } ]); //执行查找操作 db.testData.find({"type":"food"}); //nscanned 和 nscannedObjects 显示 10 表明MongoDB不得不扫描十文档 (即集合中的所有文档)找到这四个匹配文档。 //如果给type添加一个索引 db.testData.ensureIndex({"type":1}) //再执行查询操作的时候就查询四个索引文档,并返回了四个文档内容 //复合索引的性能 db.testData.ensureIndex( { quantity: 1, type: 1 } ); db.testData.ensureIndex( { type: 1, quantity: 1 } ); //明显通过数据可以看出性能的差异,更多的后面的学习文章争取分析一下查询优化
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。