mongodb - 猫鼬更新查询
问题描述
大家好,我正在尝试使用猫鼬进行更新,但似乎无法正常工作。这是我要保存的数据。
var mongoose = require('mongoose');
var DataSchema = new mongoose.Schema({
advisorEmail: {
type: String
},
data: {
type: Array
},
client: {
type: String,
required: true,
trim: true
},
accountBalance: {
type: Number,
required: true,
trim: true
},
description: {
type: String,
required: true,
trim: true
},
AccountValue: {
type: Number,
required: true,
trim: true
},
moneyMarket: {
type: Number,
required: true,
trim: true
},
buyingPower: {
type: Number,
required: true,
trim: true
},
netBalance: {
type: Number,
required: true,
trim: true
},
advisorPercentage: {
type: Number,
required: true,
trim: true
}
});
var Data = mongoose.model('Table', DataSchema);
module.exports = Data;
下面将是我正在编写的能够更新数据数组的代码
Data.update({
"advisorEmail":"Travis@travis.com"
},
{"$push":
{ "data":{"client": "Tester", "accountBalance": 21342,
"description": "test From Nodejs", "AccountValue": 123234,
"moneyMarket": 11000, "buyingPower": 01, "netBalance": 10,
"advisorPercentage": 24}}}, function(err, updateData){
if (err) throw (err);
console.log(updateData);
});
没有错误,这是我从“updateData”返回的 console.log。
{ ok: 0, n: 0, nModified: 0 }
但是当我采用相同的结构并进入我的本地 mongodb 并执行
db.tables.update({
"advisorEmail": "Travis@travis.com"
}, {
"$push": {
"data": {
"client": "bobby",
"accountBalance": 123,
"description": "TravisPUTO",
"AccountValue": 123,
"moneyMarket": 1000,
"buyingPower": 0,
"netBalance": 0,
"advisorPercentage": 1
}
}
})
它工作得很好,并说这个..
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
这是猫鼬问题吗?我不太确定出了什么问题。
感谢您为我提供的任何帮助!
解决方案
请使用其他字段更新您的架构。
advisorEmail : {type: String},
data: { type: Array },
所以猫鼬识别了你更新的字段。
推荐阅读
- apache-flink - Flink集群 - 没有这样的文件或目录java.io.FileNotFoundException:/tmp/flink-io
- ruby - 如何在 Cucumber 中为 Facebook API 注册编写 BDD 步骤定义?
- php - 用 db 数据填充 textarea 的问题
- javascript - JavaScript:在最终使用之前修改承诺中的 JSON 条目
- java - 相同的变量,不同的名称
- php - 如何更改mysql数据类型?
- android - 错误 - 未找到属性“android:appComponentFactory”
- javascript - 如何在 TypeScript 中编写具有不同返回类型的重载方法?
- html - 在手机上将右 div 挤压到左 div
- terminal - 按修改日期使zsh选项卡自动完成循环