mongodb学习和实践

mongod 启动进程命令

logpath = log/mongodb.log  日志路径
logappend = false  是否是为添加
dbpath = db/path 数据库路径
fork = true     后台运行
rest = false    是否是简单的api
port = 17090  端口号
auth = true  是否有用户密码验证 

用户角色操作:

db.createUser({user:"username",pwd:"userpwd",roles:[]})
user 用户名
pwd 用户密码
roles  数组类型 
role : readWrite | read
db : dbAdmin |      

查询操作

$all
$all 满足所有条件
db.collection.find({age:{$all:[6,8]}}) 
$exists 是否存在字段
db.collection.find({age:{$exists:false}})
mongodb条件查询:关键字
  • 小于 < $lt
  • 小于等于 <= $lte
  • 大于 > $gt
  • 大于等于 $gte
db.collection.find({ "field" : { $gt: value } } ); // 大于: field > value
db.collection.find({ "field" : { $lt: value } } ); // 小于: field < value
db.collection.find({ "field" : { $gte: value } } ); // 大于等于: field >= value
db.collection.find({ "field" : { $lte: value } } ); // 小于等于: field <= value

如果要同时满足多个条件,可以这样做

db.collection.find({ "field" : { $gt: value1, $lt: value2 } } ); // value1 < field < value2

注意:以后练习中请先创建数据,进行下面查询练习。

取模运算

mod = number%s;

查询age 取模10 等于0 的数据

db.student.find( { age: { $mod : [ 10 , 0 ] } } )

举例如下:

C1 表的数据如下:

db.c1.find()
{ "_id" : ObjectId("4fb4af85afa87dc1bed94330"), "age" : 7, "length_1" : 30 }
{ "_id" : ObjectId("4fb4af89afa87dc1bed94331"), "age" : 8, "length_1" : 30 }
{ "_id" : ObjectId("4fb4af8cafa87dc1bed94332"), "age" : 6, "length_1" : 30 }

查询age 取模6 等于1 的数据

 db.c1.find({age: {$mod : [ 6 , 1 ] } })
{ "_id" : ObjectId("4fb4af85afa87dc1bed94330"), "age" : 7, "length_1" : 30 }

可以看出只显示出了age 取模6 等于1 的数据,其它不符合规则的数据并没有显示出来

在users文档中查询”age”取模5 等于1的数据。

db.users.find({age:{$mod:[5,1]}});
{ "_id" : ObjectId("4fb4af8cafa87dc1bed94332"), "age" : 6, "length_1" : 30 }
文章来源: mongodb学习和实践