查询操作
查询一个集合下的所有记录
db.message.find({})
根据字符串条件查询指定记录
db.message.find({"content":"今天天气真的很好很好"})
查询包含某个字符串的
db.message.find({"content":/真的/})
查询以某个字符串开头的
db.message.find({"content":/^今天/})
根据正则表达式查询
db.message.find({"content":{$regex:/真的/}})
查询时呼略大小写
db.message.find({"_class":/^COM.dgg/i})
查询某一天的数据
db.message.find({"createTime":{"$gte":ISODate("2018-05-23T00:00:00Z"),"$lt":ISODate("2018-05-24T00:00:00Z")}})
查询某元素非空的数据
db.message.find({userName:{"$ne":null}})
in关键字查询
db.message.find({userName:{$in:["小无","caiufwen"]}})
根据数组长度查询
db.message.find({praises:{"$size":2}})
根据数组元素中的元素进行查询
db.message.find({"praises":{$elemMatch:{"user":"caifuwen"} }})
根据自身属性关系查询
db.message.find({$where:"this.replies.length == this.praises.length"})
多个条件查询
db.message.find({"createTime":{"$gte":ISODate("2018-05-23T00:00:00Z"),"$lt":ISODate("2018-05-24T00:00:00Z")},"praises":{$elemMatch:{"user":"caifuwen"}}})
结果中只包含指定的列
db.message.find( {}, { _id: 1, content: 1 } )
结果中不包含指定的列
db.message.find( {}, { _id: 0, content: 0 } )
正序排序
db.message.find().sort({createTime:1})
倒序排序
db.message.find().sort({createTime:-1})
skip和limit
db.message.find().sort({createTime:1}).skip(1).limit(2)
查询praises数组中包含user属性为caifuwen的元素的消息
db.message.find( { "praises": { $elemMatch: { user: "caifuwen" } } } )
聚合查询
db.cloud_message_comment.aggregate(
[
{ $group:{
_id:{messageId:"$messageId",commentType:"$commentType"},
commentId:{$push:"$_id"},
lastCommentTime:{$max:"$createDate"}
}
}
]
)
聚合查询可以参考一下两个页面的内容
http://www.runoob.com/mongodb/mongodb-aggregate.html
https://blog.csdn.net/wuya814070935/article/details/48049447