标签: mongodb-query

Mongodb:使用不同的过滤器值更新多个文档

我的数据库中有一个学生集合,如下所示。

Mongodb 学生收藏:

{
    name : 'Rahul',
    age : '15'
}
{
    name : 'Ajay',
    age : '25'
}
{
    name : 'Pinku',
    age : '43'
}
{
    name : 'Vinod',
    age : '30'
}
Run Code Online (Sandbox Code Playgroud)

在为上述学生调用外部系统后,我得到了一组数据。

[
    {'name':'Ajay','marks':20},
    {'name':'Pinku','marks':12},
    {'name':'Vinod','marks':50},
    {'name':'Rahul','marks':80}
]
Run Code Online (Sandbox Code Playgroud)

我的任务是更新学生集合记录,并添加匹配学生的分数。有没有一种方法可以在一次 dml 操作中完成此操作,而不是循环遍历每个学生文档并用标记更新它。

输出应该是: Mongod Student Collection :

{
    name : 'Rahul',
    age : '15',
    marks : 80
}
{
    name : 'Ajay',
    age : '25',
    marks : 20
}
{
    name : 'Pinku',
    age : '43',
    marks …
Run Code Online (Sandbox Code Playgroud)

mongodb mongodb-query

0
推荐指数
1
解决办法
4588
查看次数

MongoDB查询以查找电话号码不是XXX-XXX-XXXX格式的文档

我有一个集合,其中文档具有XXX-XXX-XXXX这种格式的“电话”字符串字段。但是有些电话号码格式不同,因此我们想找出具有不同电话格式的文档。MongoDB查询以查找电话号码不是XXX-XXX-XXXX格式的文档。

mongodb mongodb-query

-1
推荐指数
1
解决办法
413
查看次数

MongoDB:如何从收藏中找到第n个最高薪水

我需要从Employees系列中找到mongodb中的第n个最高薪水.如果有人可以想到在mongodb中应用连接的想法,也会非常有用.

mongodb mongodb-query

-3
推荐指数
1
解决办法
4320
查看次数

$setIntersection 要搜索的新数组集返回匹配的计数

对于在美国发行且matos.viewer. rating 大于或等于3 的电影,计算一个名为num_favs 的新字段,该字段表示电影的演员字段中出现的最爱数量。

我不知道如何进一步进行,你能帮忙吗

 favorites = 
    ["Sandra Bullock",
    "Tom Hanks",
    "Julia Roberts",
    "Kevin Spacey",
    "George Clooney"]

     db.movies.aggregate([
   { $match:{
     'tomatoes.viewer.rating':{$gte:3},
     "countries":"USA"
         }
    }
    ]). 
Run Code Online (Sandbox Code Playgroud)

mongodb-query aggregation-framework

-4
推荐指数
1
解决办法
758
查看次数

为什么.aggregate()以相反的顺序返回键

这已经困扰了我一段时间了.MongoDB 的聚合框架是一个很好的工具,通常比.mapReduce()大多数情况更适合使用,除非后者实际上更适合.

当然,与JavaScript解释相比,它实际上使用本机C++编译中实现的方法来执行它的操作,因此在大多数情况下比mapReduce替代方案"更快".

但这里的主要问题是"结果中'反转'关键顺序的含义是什么?".至少在最后几个主要版本的情况下,如果情况并非总是这样(不是真的在这里测试每个版本,在写作时只考虑2.6.x和3.x候选版本).但它始终处于"反向"状态,这看起来非常直观,因为我将在一个例子中给出.

将基本集合视为一个简单的例子:

db.example.insert([
    { "field": "A", "value": 1 },
    { "field": "A", "value": 2 },
    { "field": "B", "value": 3 },
    { "field": "B", "value": 4 },
    { "field": "C", "value": 5 },
    { "field": "C", "value": 6 }
])
Run Code Online (Sandbox Code Playgroud)

一旦该集合到位,当您想要运行如下样本聚合操作时:

db.example.aggregate([
    { "$group": {
        "_id": "$field",
        "value": { "$sum": "$value" }
    }}
])
Run Code Online (Sandbox Code Playgroud)

然后返回的结果总是会像这样神秘地返回:

[
    { "_id" : "C", "value" : 11 },
    { "_id" : "B", "value" : 7 },
    { …
Run Code Online (Sandbox Code Playgroud)

mongodb mongodb-query aggregation-framework

-8
推荐指数
1
解决办法
510
查看次数