$ set在mongodb更新中不起作用
所以即时通讯工作与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 mongoose.mongo.ObjectId('id here')
。 但它不更新任何东西。 这是结果。
{ ok: 1, nModified: 0, n: 1 }
这里有什么问题? 这是因为版本? 我的mongoose
版本是2.15.8
请帮帮我! 谢谢!
不要太沮丧,mongoose没有什么问题,我想你的问题是因为req.query.id是一个string你需要先将string转换为ObjectId
文档没有更新,因为它没有find任何其他原因只是将_id转换为对象ID的文档
阅读此转换我想对象我想在MongoDB中将string转换为ObjectID
- 如何在mongodb中分配一个id值?
- SailsJs错误。 TypeError:无法读取未定义的属性'属性'
- 将查询返回结果mongoose到一个variables
- Node.js – Mongoose / MongoDB – 模型模式
- 你怎么能正确地要求在mocha.opts模块?
- 如何在mongoDB集合中存储meteor助手,以及如何从mongoDB集合中提取meteor助手
- 如何在ejs中将variables设置为datetypes?
- AWS,NodeJS – 将应用程序连接到另一个EC2实例上的Mongodb
- 使用node.js和mongoose以及expressjs和passportjs进行身份validation