小编Pra*_*sha的帖子

(AZURE cosmosDB/mongoDB)更新数组中对象的特定元素的字段

{
    "_id" : ObjectId("59660d4099c1e682e0992ced"),
    "alpha" : [
        {
            "_id" : ObjectId("59660d4199c1e682e0992cee"),
            "number" : 1,
            "start_at" : ISODate("2017-07-12T11:51:28.895Z"),
            "end_at" : ISODate("2017-08-12T11:51:28.895Z"),
            "created_at" : ISODate("2017-07-12T11:51:29.346Z"),
            "updated_at" : null
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

我有一个上面的文档,我想在'alpha'数组的JSON元素中更新或更改字段'number'和'updated_at'.

我试过这个:

db.mycol.update({_id: ObjectId("59660d4099c1e682e0992ced"), alpha: {$elemMatch: {_id: ObjectId("59660d4199c1e682e0992cee")}}}, {$set: {"alpha.$.number": 2, "alpha.$.updated_at": new Date()}})
Run Code Online (Sandbox Code Playgroud)

它适用于普通的mongodb服务器.但是使用azure cosmosdb/mongodb它说好,但没有真正更新文档.我究竟做错了什么?

javascript json azure mongodb azure-cosmosdb

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

MongoError:连接0到localhost:27017超时

events.js:141
      throw er; // Unhandled 'error' event
MongoError: connection 0 to localhost:27017 timed out
at Function.MongoError.create (/home/ubuntu/scripts/node_modules/mongodb-core/lib/error.js:29:11)
    at Socket.<anonymous> (/home/ubuntu/scripts/node_modules/mongodb-core/lib/connection/connection.js:184:20)
    at Socket.g (events.js:260:16)
    at emitNone (events.js:67:13)
    at Socket.emit (events.js:166:7)
    at Socket._onTimeout (net.js:318:8)
    at _runOnTimeout (timers.js:524:11)
    at _makeTimerTimeout (timers.js:515:3)
    at Timer.unrefTimeout (timers.js:584:5)
Run Code Online (Sandbox Code Playgroud)

好吧,在连接过程中没有错误,但是当尝试保存一些模型/集合时,它会运行一段时间,然后它会抛出此错误.BTW我还有另一个节点进程连接到同一个mongodb服务器.任何帮助都非常感谢.

mongoose mongodb node.js

7
推荐指数
2
解决办法
2万
查看次数

Postgres将数组的每个元素(如果不存在)追加或设置为数组列

如果我有

select arr_str from tabl1;
-> {'a', 'b'}
Run Code Online (Sandbox Code Playgroud)

那么如何将此{'b','c','d'}数组添加到列中arr_str 以便获得以下结果

select arr_str from tabl1;
-> {'a', 'b', 'c', 'd'}
Run Code Online (Sandbox Code Playgroud)

我不想选择列并创建一个新数组进行更新.我只想使用UPDATE查询.

sql arrays postgresql

6
推荐指数
2
解决办法
3517
查看次数

Mongodb Atlas 警报:查询目标:已扫描对象/返回已超过 1000

聚合查询:

 db.events.aggregate([
        {$match: { "generated_at": {
            "$gte": new Date(2017, 0, 1),
            "$lte": new Date(2017, 3, 1)
        }, game_id: ObjectId("59de213e9c43f70001c29bef"), event_type: "session"}},
        {$project: { generated_at: "$generated_at", user_device_id: "$user_device_id", 
            avg_user_session_duration: {
                $avg: "$session_duration"
            }
        }},
        {$group: { _id: {day: { $dayOfMonth: "$generated_at"}, month: {$month: "$generated_at"},  year: { $year: "$generated_at"} }, 
            avg_session_duration_per_user: {
                $avg: "$avg_user_session_duration"
            }
        }},
        {$sort: {"_id.year": 1, "_id.month": 1, "_id.day": 1}}
    ])
Run Code Online (Sandbox Code Playgroud)

索引:

 {
    "v" : 2,
    "key" : {
        "generated_at" : 1,
        "game_id" : 1,
        "event_type" : 1,
        "impression_type" …
Run Code Online (Sandbox Code Playgroud)

aggregate bigdata mongodb aggregation-framework mongodb-atlas

5
推荐指数
0
解决办法
4964
查看次数