mongodb 嵌套更新插入 mongodb 嵌套数组查询_最小值

如图:需要获取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})