如图:需要获取id为123ljdifs值条目中,unknowwords内嵌数组中word 等于red的一条数据
MongoClient.connect(url,function(err,db){//使用管道聚合获取内嵌数组中的数据
dbo = db.db('words')//这里选择数据库
dbo.collection('guest').aggregate([//选择数据表,就是集合
{$unwind:"$unknowwords"},//选定要查询的内嵌数组
{$match:{"unknowwords.word":'red'}},//指定查询条件,这里是内嵌数组中的word字段等于abcde
{$project:{"unknowwords.word":1,'_id':0}},//需要返回的字段,这里关闭了_id的返回
{$limit:3}//定义返回的数据数量
]).toArray(function(err,data){
console.log(data);//打印到控制台
db.close() //关闭数据库
})
})
//db.晨曦与晚霞之间.find({'finalWords.word':{$eq:'sri'}},{'finalWords.$':1})
//db.guest.aggregate([{$unwind:'$finalWords'},{$match:{'finalWords.status':1,chapter:'test'}},{$project:{'finalWords.word':1,'_id':0,'finalWords.desc':1}}])//这个多了一个chapter的过滤条件,只返回一个文章的内容
//db.guest.aggregate([{$unwind:'$finalWords'},{$match:{'finalWords.status':1}},{$project:{'finalWords.word':1,'_id':0,'finalWords.desc':1}}])//这个没有chapter的过滤条件,返回了当前集合下所有符合条件的数据//db.guest.aggregate([{$unwind:'$finalWords'},{$match:{'finalWords.status':1}},{$project:{'finalWords.word':1,'_id':0,'finalWords.desc':1}},{$limit:3}])//这个没有chapter的过滤条件,但是指定了返回的条目数量,所以只返回了3条数据
//获取过滤出的内嵌数组的数量
//db.guest.aggregate([{$unwind:"$finalWords"},{$match:{'chapter':'test1',"finalWords.status":0}},{"$count":"total"}])
//db.guest.aggregate([{$unwind:'$finalWords'},{$match:{'finalWords.status':1,chapter:'test'}},{$project:{'finalWords.word':1,'_id':0,'finalWords.desc':1}}])//这个多了一个chapter的过滤条件,只返回一个文章的内容
db.guest.aggregate([
{
$unwind:'$finalWords'//要操作的内嵌数组
},{
$match:{'finalWords.status':1,chapter:'test'}//过滤条件,这个指定了匹配的反问是章节名称为test的
},{
$project:{'finalWords.word':1,'_id':0,'finalWords.desc':1}}//需要返回的数据
])
//db.guest.aggregate([{$unwind:'$finalWords'},{$match:{'finalWords.status':1}},{$project:{'finalWords.word':1,'_id':0,'finalWords.desc':1}}])//这个没有chapter的过滤条件,返回了当前集合下所有符合条件的数据
db.guest.aggregate([
{$unwind:'$finalWords'},//要操作的内嵌数组
{$match:{'finalWords.status':1}},//要过滤的条件,这个条件的范围是所有文档
{$project:{'finalWords.word':1,'_id':0,'finalWords.desc':1}}//要返回的数据
])
//db.guest.aggregate([{$unwind:'$finalWords'},{$match:{'finalWords.status':1}},{$project:{'finalWords.word':1,'_id':0,'finalWords.desc':1}},{$limit:3}])//这个没有chapter的过滤条件,但是指定了返回的条目数量,所以只返回了3条数据
db.guest.aggregate([
{$unwind:'$finalWords'},//要操作的内嵌数组
{$match:{'finalWords.status':1}},//要过滤的条件,这个条件的范围默认是所有文档
{$project:{'finalWords.word':1,'_id':0,'finalWords.desc':1}},//要返回的数据
{$limit:3}//设定要返回多少条数据
])
db.guest.aggregate([
{$unwind:'$finalWords'},
{$match:{'finalWords.status':1,chapter:'test'}},
{$project:{"_id":0,"mini":{"$min":"$finalWords.status"},"count":{"$sum":"$finalWords.status"}}}])
//db.guest.aggregate([{'$match':{"chapter":'sanvtions'}},{'$project':{"_id":0,"mini":{"$min":"$finalWords.status"},"count":{"$sum":"$finalWords.status"}}}])
db.guest.aggregate([
{'$match':{"chapter":'sanvtions'}},
{'$project':{"_id":0,"mini":{"$min":"$finalWords.status"},"count":{"$sum":"$finalWords.status"}}}])//project可以返回数据,这些数据可以使用如$sum函数做处理。
//把$max换成其他如:sum、avg、min。可实现求和、平均、最小值功能
db.guest.aggregate({"$group":{_id: 'max',max_value:{"$avg":"$finalWords.status"}}});
db.guest.find({'finalWords.word':{$eq:'sri'}},{'finalWords.$':1})
db.guest.find({'finalWords.word':{$ne:'11a444'}},{'finalWords.$':1})
db.guest.find({chapter:'test','finalWords':{$elemMatch:{'word':{$ne:'11a444'}}}},{'_id':0,'finalWords.$':1}).count()
db.guest.find({chapter:'test',"finalWords":{$elemMatch:{"word":{$ne:'a'}}}},{"finalWords.$":1,"_id":0})
//db.guest.aggregate([{$unwind:'$finalWords'},{$match:{'finalWords.status':1,chapter:'test'}},{$project:{'finalWords.word':1,'_id':0,'finalWords.desc':1}}])//这个多了一个chapter的过滤条件,只返回一个文章的内容
db.guest.aggregate([
{
:'$finalWords'//要操作的内嵌数组
},{
:{'finalWords.status':1,chapter:'test'}//过滤条件,这个指定了匹配的反问是章节名称为test的
},{
:{'finalWords.word':1,'_id':0,'finalWords.desc':1}}//需要返回的数据
])
//db.guest.aggregate([{$unwind:'$finalWords'},{$match:{'finalWords.status':1}},{$project:{'finalWords.word':1,'_id':0,'finalWords.desc':1}}])//这个没有chapter的过滤条件,返回了当前集合下所有符合条件的数据
db.guest.aggregate([
{$unwind:'$finalWords'},//要操作的内嵌数组
{$match:{'finalWords.status':1}},//要过滤的条件,这个条件的范围是所有文档
{$project:{'finalWords.word':1,'_id':0,'finalWords.desc':1}}//要返回的数据
])
//db.guest.aggregate([{$unwind:'$finalWords'},{$match:{'finalWords.status':1}},{$project:{'finalWords.word':1,'_id':0,'finalWords.desc':1}},{$limit:3}])//这个没有chapter的过滤条件,但是指定了返回的条目数量,所以只返回了3条数据
db.guest.aggregate([
{$unwind:'$finalWords'},//要操作的内嵌数组
{$match:{'finalWords.status':1}},//要过滤的条件,这个条件的范围默认是所有文档
{$project:{'finalWords.word':1,'_id':0,'finalWords.desc':1}},//要返回的数据
{$limit:3}//设定要返回多少条数据
])
db.guest.aggregate([
{$unwind:'$finalWords'},
{$match:{'finalWords.status':1,chapter:'test'}},
{$project:{"_id":0,"mini":{"$min":"$finalWords.status"},"count":{"$sum":"$finalWords.status"}}}])
//db.guest.aggregate([{'$match':{"chapter":'sanvtions'}},{'$project':{"_id":0,"mini":{"$min":"$finalWords.status"},"count":{"$sum":"$finalWords.status"}}}])
db.guest.aggregate([
{'$match':{"chapter":'sanvtions'}},
{'$project':{"_id":0,"mini":{"$min":"$finalWords.status"},"count":{"$sum":"$finalWords.status"}}}])//project可以返回数据,这些数据可以使用如$sum函数做处理。
//把$max换成其他如:sum、avg、min。可实现求和、平均、最小值功能
db.guest.aggregate({"$group":{_id: 'max',max_value:{"$avg":"$finalWords.status"}}});
db.guest.find({'finalWords.word':{$eq:'sri'}},{'finalWords.$':1})
db.guest.find({'finalWords.word':{$ne:'11a444'}},{'finalWords.$':1})
db.guest.find({chapter:'test','finalWords':{$elemMatch:{'word':{$ne:'11a444'}}}},{'_id':0,'finalWords.$':1}).count()
db.guest.find({chapter:'test',"finalWords":{$elemMatch:{"word":{$ne:'a'}}}},{"finalWords.$":1,"_id":0})