mongoose怎么在子文档的array里update或insert?

arabicsara 2014-06-06 08:32:45

//数据库是:
{
"__v": 1,
"_id": "538f5f0f6195a184108c8bd8",
"title": "GameTitle",
"item": [{
"_id": "538f5f0f6195a184108c8bd6",
"name": "itemOne",
"men": [{
"_id": "5390cccf0a84f41f37082874",
"user": "id22222222",
"score": 2000
}, {
"_id": "2390cccf0a84f41f37082873",
"user": "id33333333",
"score": 1000
}]
}, {
"_id": "538f5f0f6195a184108c8bd7",
"name": "itemTwo",
"men": []
}],
"status": 1
}


//代码是:
var MenSchema = new mongoose.Schema({
user: 'String',
score: {
type: Number,
default: 0
}
});

var ItemsSchema = new mongoose.Schema({
name: String
,men: [MenSchema]
});

ListsSchema = new mongoose.Schema({
title: {
type: String,
required: true
}
,item: [ItemsSchema]
});

var Items = mongoose.model('item', ItemsSchema);
var Lists = mongoose.model('lists', ListsSchema);
var Men = mongoose.model('men', MenSchema);
Insert and update:

function commit(sId, sItem, sUser, sIncreaseScore) {
Lists.findOne({, "_id": sId,
"item.name": sItem
}, null, function(err, documents) {
if (!err) {
if (documents != null) {
Lists.findOne({
"_id": sId,
"item.name": sItem,
"item.men.user": sUser
}, null, function(err, subDoc) {
if (!err) {
if (subDoc != null) {
//increase user score
//!!!!!!!!!!!!!But subDoc will get all arrays of item.men, so I can't update it correctly
} else {
//inser new user score
var userData = new Men({
user: sUser,
score: sScore
});

documents.item[0].men.push(userData);
documents.save(function(err) {
if (!err) {
///!!!!!!!!!!!!!!Will come this
console.log("documents error on save!");
} else {
console.log("save documents ok!");
}
});
}
}
});
}
} else {
console.log("not find the game item!");
}
}
);
}


这是一个类似iOS game center分数排行榜的数据库, 一个游戏里有多个item项目, 每个项目有多个玩家的分数数据.
document里包含了subDoc子文档,子文档里又有一个array,怎么找到这个array里的某个值,并对它进行修改?
...全文
299 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
sb3day 2014-07-16
  • 打赏
  • 举报
回复
没办法的, NOSQL不支持
内容概要:本文针对高比例可再生能源接入背景下虚拟电厂中异质电动汽车集群的充放电优化难题,提出了一种基于深度确定性策略梯度(DDPG)强化学习算法的自适应调度策略。研究通过构建融合风光出力、负荷需求与电动汽车行为的综合仿真环境,采用Matlab实现DDPG模型,对电动汽车的V2G(Vehicle-to-Grid)行为进行智能决策优化,有效应对充放电过程中的不确定性、电池损耗约束及电网互动复杂性。所提方法不仅实现了削峰填谷、降低运行成本和提升电网稳定性的多重目标,还结合MILP基准模型进行校验,验证了其在复杂场景下的优越性能与工程实用性,为虚拟电厂环境下大规模电动汽车协同调度提供了有效的算法支持与仿真范例。; 适合人群:具备一定电力系统基础知识、强化学习理论基础及Matlab编程能力的研究生、科研人员及从事智慧能源、电动汽车调度相关工作的技术人员。; 使用场景及目标:①应用于虚拟电厂环境下大规模电动汽车的协同调度与能量管理;②实现可再生能源消纳最大化与电网负荷的柔性调节;③为研究基于深度强化学习的复杂能源系统优化控制提供算法实现与仿真案例参考; 阅读建议:建议结合文中提供的Matlab代码进行仿真实践,重点关注状态空间、动作空间与奖励函数的设计逻辑,深入理解DDPG在连续控制问题中的应用机制,并可通过调整超参数或引入其他算法进行对比实验以深化认知。
内容概要:本文系统研究了有限控制集模型预测控制(FCS-MPC)在三相并网逆变器中的应用,重点探讨其在不同电网工况下的运行特性与并网性能,并通过Simulink平台实现完整的仿真实验。研究内容涵盖三相并网逆变器的数学建模、FCS-MPC控制策略的设计原理及其在电网电压对称、不平衡及动态扰动工况下的控制表现。通过引入前馈-反馈复合控制机制与正负序分离锁相技术,有效提升了系统的动态响应速度、抗干扰能力与电能质量,抑制了功率波动与电流畸变。研究表明,FCS-MPC策略具有控制精度高、响应迅速、适应性强等优势,尤其在复杂电网环境下展现出优越的稳定性和鲁棒性,为新能源发电系统的高性能并网控制提供了有效的技术路径。; 适合人群:具备电力电子、自动控制与电力系统基础知识,从事新能源并网、微电网控制、逆变器系统设计等方向的研究生、科研人员及工程技术人员。; 使用场景及目标:① 掌握FCS-MPC在并网逆变器中的建模与仿真方法;② 深入分析并网逆变器在电网对称、不平衡及动态扰动等多工况下的运行特性和稳定性;③ 提升对模型预测控制在电力电子系统中应用的理解与实践能力,推动先进控制策略在实际工程中的落地。; 阅读建议:建议结合Simulink仿真模型同步学习,重点关注控制策略的设计逻辑、参数整定方法及不同工况下的响应特性,通过设置多种电网扰动实验,深入理解FCS-MPC的控制优势与实现细节,强化理论与实践的结合。

87,988

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧