当前位置:  开发笔记 > 编程语言 > 正文

NodeJS和Mongoskin,不能做简单的更新.传入的参数必须是12个字节或24个十六进制字符串

如何解决《NodeJS和Mongoskin,不能做简单的更新.传入的参数必须是12个字节或24个十六进制字符串》经验,为你挑选了1个好方法。

使用mongoskin.

我正在尝试进行简单的更新,并继续收到错误:

错误:传入的参数必须是12个字节的单个字符串或十六进制格式的24个十六进制字符的字符串

我试过的不同代码:

var mongo = require('mongoskin'),
    store = mongo.db(MONGO_DB_ADDESS + ':' + MONGO_DB_PORT + '/' + MONGO_DB_NAME + '?auto_reconnect=false');

session._id = 4eb5444d39e153e60b000001;

store.collection('sessions').updateById({_id : session._id}, {$set: status_obj}, {upsert : false, multi : false, safe : false}, function() { ... });

store.collection('sessions').updateById(session._id, {$set: status_obj} );      

甚至试过:

store.collection('sessions').update( {'_id': session._id}, {$set: {"status":'unavailable'}} );    

任何帮助赞赏!

谢谢Fyi,我可以通过mongo使用cli进行更新:

db.sessions.update( {'_id': ObjectId('4eb5444d39e153e60b000001')}, {$set: {"status":'unavailable'}} );

PaulM.. 17

store.collection('sessions').updateById(session._id.toString(), {$set: status_obj} ); 

添加.toString()最终解决了这个问题.



1> PaulM..:
store.collection('sessions').updateById(session._id.toString(), {$set: status_obj} ); 

添加.toString()最终解决了这个问题.

推荐阅读
拾味湖
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有