【发布时间】:2017-03-19 02:20:53
【问题描述】:
所以我正在使用nodeJS 和mongoDB。我在更新收藏时遇到了问题,自从我开始研究它已经一周了,这真的让我很头疼。所以这是我的样本集
{
"_id": ObjectId('51299sdfasdf') //this is just a sample Id
"names": [
"NameA",
"NameB",
"NameC"
],
"names_id": [
ObjectId('asdfasdf1312'),
ObjectId('12sda123123a'),
ObjectId('asdf1212123a')
],
"user_alias": "SampleA"
}
那么这是我的脚本
var mongoose = require('mongoose');
var model = mongoose.model('Sample');
model.update( { _id: req.query._id },
{
$set: {
names: namesArray, //this are set of names ex; ['name1', 'name2']
names_id: namesIdArray //this are set of ids ex: [ ObjectId('sgsdfgsd'), ObjectId('asdfasdfadf')
},
},
function(err, results) {
if(err) res.status(500).send(err);
console.log(results);
}
);
我知道我的编码是正确的。在 names_id 数组中,我指定了所有对象 ID,例如 mongoose.mongo.ObjectId('id here')。但它不会更新任何东西。这是结果。
{ ok: 1, nModified: 0, n: 1 }
这里有什么问题?这是因为版本吗?我的mongoose 版本是2.15.8
请帮帮我!谢谢!
【问题讨论】:
-
您确定
req.query._id已定义吗?此外,没有 Mongoose 版本 2.15.8。 -
是的,它已定义。以及关于版本。当我在我的 git npm mongoose -v 上输入它时。 2.15.8。这会出现
-
我认为 Mongoose 或 MongoDB 没有问题。您可以尝试打印
req.query.id的值吗?我认为它没有更新它的原因是它没有具有该特定 ID 的记录。 -
@JoshuaFabillar 是
npm的版本 :D 对于 Mongoose 版本,使用npm ls mongoose。 -
@JoshuaFabillar 只是为了确定:Mongoose 将使用的集合称为
samples。我之所以提到这一点,是因为人们认为模型的名称 (Sample) 也是正在使用的集合的名称,这已经不是第一次了。