我在按预期或完全按照保存数据进行保存时遇到问题。
尝试1:
Video.upsert({
user: videoData.user,
}, {
$push: {
video: videoData.video,
}
});
结果1:
Mongo中的异常写:TypeError:无法读取属性'indexOf'的 undefined I20170816-12:32:05.868(2)?在 Function.MongoConnection._isCannotChangeIdError (包/蒙戈/ mongo_driver.js:641:7)
尝试2:
Video.upsert({
user: videoData.user,
}, {
$addToSet: {
video: videoData.video,
}
});
结果2:
Mongo中的异常写:TypeError:无法读取属性'indexOf'的 undefined I20170816-12:39:54.709(2)?在 Function.MongoConnection._isCannotChangeIdError (包/蒙戈/ mongo_driver.js:641:7)
尝试3:
Video.upsert({
user: videoData.user,
}, {
$set: {
video: videoData.video,
}
});
结果3:
Mongo中的异常写:TypeError:无法读取属性'indexOf'的 undefined I20170816-12:42:18.915(2)?在 Function.MongoConnection._isCannotChangeIdError (包/蒙戈/ mongo_driver.js:641:7)
尝试4:
Video.update({
user: videoData.user,
}, {
$set: {
video: videoData.video,
}
}, {
upsert: true,
});
结果4:
每次运行时保持创建以下文档(不更新现有文档),并且缺少video
字段:
{
"_id" : "Gs5of657ZqKa4ec3h",
"user" : "testUser"
}
尝试5:
Video.update({
user: videoData.user,
}, {
$addToSet: {
video: videoData.video,
}
}, {
upsert: true,
});
结果5:
Mongo中的异常写:TypeError:无法读取属性'indexOf'的 undefined I20170816-13:06:13.250(2)?在 Function.MongoConnection._isCannotChangeIdError (包/蒙戈/ mongo_driver.js:641:7)
尝试6:
尝试插入二进制文件。
Video.insert({
user: videoData.user,
video: videoData.video,
});
结果6:
每次运行时添加以下文档,证明传递的对象是OK:
{
"_id" : "ceg3dXWXZoHjcy4AT",
"user" : "testUser",
"video" : { "$binary" : "a long string goes here", "$type" : "00" }
}
为什么我没有尝试失败?我将错误消息解释为好像没有使用user
字段找到要更新的任何文档,但是当它是upsert
时是否应该插入一个?
我想要的是包含一系列视频数据文档的用户文档。
答案 0 :(得分:0)
好的,首先您应该在this.setState({item : items}, () => console.log(this.state.item));
字段上创建唯一索引。
接下来,像这样使用user
:
upsert