{
"_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它说好,但没有真正更新文档.我究竟做错了什么?
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服务器.任何帮助都非常感谢.
如果我有
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查询.
聚合查询:
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