因此我正在使用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
请帮帮我!谢谢!
答案 0 :(得分:1)
文档未更新,因为它没有找到任何文档,没有其他原因只是将_id转换为对象ID
阅读此内容,将我转换为对象I' d Convert string to ObjectID in MongoDB