我是Node.js,mongodb和mongoose的新手.我想在创建新文档时传递一些参数.例如,这是创建新文档的典型示例:
var animalSchema = new Schema({ name: String, type: String });
var Animal = mongoose.model('Animal', animalSchema);
var dog = new Animal({ type: 'dog' });
Run Code Online (Sandbox Code Playgroud)
我想做这样的事情:
var dog = new Animal( Array );
Run Code Online (Sandbox Code Playgroud)
所以我想为新文档创建自定义构造函数.但我不知道在mongoose中我可以在哪里以及如何设置这样的自定义构造函数.
我有一个类似名称的stackoverflow帖子,但它似乎不是我想要的东西:Mongoose架构/模型中的自定义构造函数
也许我犯了一个愚蠢的错误.欢迎任何想法.
谢谢
以下代码将发布错误消息:
// object is a color image with type cv::Mat
IplImage* temp_object = &(IplImage)object;
IplImage* ipl_object = cvCreateImage(cvGetSize(temp_object), 8, 3);
assert(temp_object->nChannels == 3 && temp_object->depth == IPL_DEPTH_8U);
assert(ipl_object->nChannels == 3 && ipl_object->depth == IPL_DEPTH_8U);
cvCvtColor(ipl_object, temp_object, CV_BGR2GRAY);
Run Code Online (Sandbox Code Playgroud)
错误
OpenCV错误:cvCvtColor中的断言失败(dst.data == dst0.data),文件/ opt/local /var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_graphics_opencv/opencv/work/OpenCV-2.3.1/modules/imgproc/ src/color.cpp,第3175行终止,称为抛出异常
修改后的更新代码(现在应该可以使用).谢谢您的帮助!
IplImage temp_object (object);
IplImage* ipl_object = cvCreateImage(cvGetSize(&temp_object), 8, 1);
cvCvtColor(&temp_object, ipl_object, CV_BGR2GRAY);
Run Code Online (Sandbox Code Playgroud) 我正在使用mongoose和gridfs-stream来存储和读取mongodb中的文件.我在这里的例子:https://github.com/aheckmann/gridfs-stream
将文件写入数据库工作正常,但我遇到了读取文件的问题.
mongodb看起来是什么(显示收藏)
fs.chunks
fs.files
Run Code Online (Sandbox Code Playgroud)
文件索引的外观(db.fs.files.find())
{ "_id" : ObjectId("5140392659851df70b000001"),
"filename" : "cover",
"contentType" : "binary/octet-stream",
"length" : 85734,
"chunkSize" : 262144,
"uploadDate" : ISODate("2013-03-13T08:30:30.299Z"),
"aliases" : null,
"metadata" : null,
"md5" : "4476b26067daa0677978ba501308a35d" }
Run Code Online (Sandbox Code Playgroud)
然后我使用此代码获取名为"cover"的文件
...
var gfs = Grid(mongoose.connection.db, mongoose.mongo)
var readstream = gfs.createReadStream('cover')
Run Code Online (Sandbox Code Playgroud)
发生错误:
Error: cover does not exist
at self.collection.self.fileId (/mypath/node_modules/mongoose/node_modules/mongodb/lib/mongodb/gridfs/gridstore.js:198:26)
at Cursor.nextObject (/mypath/node_modules/mongoose/node_modules/mongodb/lib/mongodb/cursor.js:654:35)
at Cursor.close (/mypath/node_modules/mongoose/node_modules/mongodb/lib/mongodb/cursor.js:960:5)
at Cursor.nextObject (/mypath/node_modules/mongoose/node_modules/mongodb/lib/mongodb/cursor.js:654:17)
at Cursor.nextObject.commandHandler (/mypath/node_modules/mongoose/node_modules/mongodb/lib/mongodb/cursor.js:631:14)
at Db._executeQueryCommand (/mypath/node_modules/mongoose/node_modules/mongodb/lib/mongodb/db.js:1702:5)
at g (events.js:185:14)
at EventEmitter.emit (events.js:115:20)
at …Run Code Online (Sandbox Code Playgroud) 我是iOS编程的新手.
这是我的问题:
我想将一个新对象连接到现有的IBAction方法.例如,我想按钮执行相同的功能.
但是当我"控制 - 拖动"它时,它总是会让我插入作为一种新方法.如何添加到现有的而不是创建新的?
XCode中的快照
