怎样查找mongodb最后一条数据 mongodb 查询数组内符合条件的值
怎样查找mongodb最后一条数据
cursor.count和cursor.skip。
但是mongodb不保证数据的顺序,如果你需要的是最新加入数据库的那一条doc,你最好在doc里加一个时间来记录存入数据库的时候,然后根据这个时间来排序。
mongodb 查询数组内符合条件的值
{"list":
[{"num":1, "name":"a"},
{"num":2, "name":"b"},
{"num":7, "name":"c"},
{"num":3, "name":"c"},
{"num":4, "name":"c" }]}
这样就可以查询出来你要的结果
mongoDB数组查询如何只返回数组中的一条记录
mongodb中使用aggregate可以返回数组字段数组的指定索引的元素
参考语句:
{$match:{duid:15}},
{$project:{duid:1,"default":1}},
{$unwind:"$default.styles"},
{$match:{default.styles.status:1}},
{$group:{_id:"$_id","defaults":{$push:"$default.styles"}}}
解释:
1:过滤数据{$match:{duid:15}}
2:获取想要的列{$project:{duid:1,"default":1}}
3:获取展开后数组字段{$unwind:"$default.styles"}
4:条件查询数组元素{$match:{default.styles.status:1}}
5:分组后保存结果{$group:{_id:"$_id","defaults":{$push:"$default.styles"}}}
数据结构如下:
{
"_id" : ObjectId("55dad346ea23e7c11beefce5"),
"duid" : 11.0,
"default" : {
"style" : "普通会诊",
"alias" : "",
"money" : "0",
"styles" : [{
"code" : 1,
"style" : "普通会诊",
"alias" : "一般会诊",
"money" : 100,
"status" : 1,
"remark" : "需要患者亲自来到医院"
} {
"code" : 6,
"style" : "夜间门诊",
"alias" : "夜间门诊",
"money" : 100,
"status" : 0,
"remark" : "夜间门诊"
}, {
"code" : 7,
"style" : "其他门诊",
"alias" : "其他门诊",
"money" : 10,
"status" : 0,
"remark" : "其他门诊"
}]
}
}
mongodb.conf怎么用命令生成
成功启动MongoDB后,再打开一个命令行窗口输入mongo,就可以进行数据库的一些操作。
输入help可以看到基本操作命令:
show dbs:显示数据库列表
show collections:显示当前数据库中的集合(类似关系数据库中的表)
show users:显示用户
use :切换当前数据库,这和MS-SQL里面的意思一样 db.help():显示数据库操作命令,里面有很多的命令 db.foo.help():显示集合操作命令,同样有很多的命令,foo指的是当前数据库下,一个叫foo的集合,并非真正意义上的命令 db.foo.find():对于当前数据库中的foo集合进行数据查找(由于没有条件,会列出所有数据) db.foo.find( { a : 1 } ):对于当前数据库中的foo集合进行查找,条件是数据中有一个属性叫a,且a的值为1 MongoDB没有创建数据库的命令,但有类似的命令。 如:如果你想创建一个“myTest”的数据库,先运行use myTest命令,之后就做一些操作(如:db.createCollection(user)),这样就可以创建一个名叫“myTest”的数据库。 数据库常用命令 1、Help查看命令提示 help db.help() db.yourColl.help() db.youColl.find().help() rs.help() 2、切换/创建数据库 use yourDB 当创建一个集合(table)的时候会自动创建当前数据库 3、查询所有数据库 show dbs 4、删除当前使用数据库 db.dropDatabase() 5、从指定主机上克隆数据库 db.cloneDatabase(“127.0.0.1”) 将指定机器上的数据库的数据克隆到当前数据库 6、从指定的机器上复制指定数据库数据到某个数据库 db.copyDatabase("mydb", "temp", "127.0.0.1")将本机的mydb的数据复制到temp数据库中 7、修复当前数据库 db.repairDatabase() 8、查看当前使用的数据库 db.getName() db db和getName方法是一样的效果,都可以查询当前使用的数据库 9、显示当前db状态 db.stats() 10、当前db版本 db.version() 11、查看当前db的链接机器地址 db.getMongo() Collection聚集集合 1、创建一个聚集集合(table) db.createCollection(“collName”, {size: 20, capped: 5, max: 100}) 2、得到指定名称的聚集集合(table) db.getCollection("account") 3、得到当前db的所有聚集集合 db.getCollectionNames() 4、显示当前db所有聚集索引的状态 db.printCollectionStats() 用户相关 1、添加一个用户 db.addUser("name") db.addUser("userName", "pwd123", true) 添加用户、设置密码、是否只读 2、数据库认证、安全模式 db.auth("userName", "123123") 3、显示当前所有用户 show users 4、删除用户 db.removeUser("userName") 其他 1、查询之前的错误信息 db.getPrevError() 2、清除错误记录 db.resetError() 查看聚集集合基本信息 1、查看帮助 db.yourColl.help() 2、查询当前集合的数据条数 db.yourColl.count() 3、查看数据空间大小 db.userInfo.dataSize() 4、得到当前聚集集合所在的db db.userInfo.getDB() 5、得到当前聚集的状态 db.userInfo.stats() 6、得到聚集集合总大小 db.userInfo.totalSize() 7、聚集集合储存空间大小 db.userInfo.storageSize() 8、Shard版本信息 db.userInfo.getShardVersion() 9、聚集集合重命名 db.userInfo.renameCollection("users") 将userInfo重命名为users 10、删除当前聚集集合 db.userInfo.drop() 聚集集合查询 1、查询所有记录 db.userInfo.find() 相当于:select* from userInfo 默认每页显示20条记录,当显示不下的情况下,可以用it迭代命令查询下一页数据。注意:键入it命令不能带“;” 但是你可以设置每页显示数据的大小,用DBQuery.shellBatchSize= 50这样每页就显示50条记录了。 2、查询去掉后的当前聚集集合中的某列的重复数据 db.userInfo.distinct("name") 会过滤掉name中的相同数据 相当于:select distict name from userInfo 3、查询age = 22的记录 db.userInfo.find({"age": 22}) 相当于: select * from userInfo where age = 22 4、查询age > 22的记录 db.userInfo.find({age: {$gt: 22}}) 相当于:select * from userInfo where age >22 5、查询age < 22的记录 db.userInfo.find({age: {$lt: 22}}) 相当于:select * from userInfo where age <22 6、查询age >= 25的记录 db.userInfo.find({age: {$gte: 25}}) 相当于:select * from userInfo where age >= 25 7、查询age <= 25的记录 db.userInfo.find({age: {$lte: 25}}) 8、查询age >= 23 并且 age <= 26 db.userInfo.find({age: {$gte: 23, $lte: 26}}) 9、查询name中包含 mongo的数据 db.userInfo.find({name: /mongo/}) //相当于%% select * from userInfo where name like ‘%mongo%’