- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
用户架构
var UserSchema = new Schema({
name: String,
username: { type: String, required: true, index: { unique: true }},
password: { type: String, required: true, select: false},
favouriteid:[{eventid:String}]
});
事件架构
var EventSchema=new Schema({
name:String,
location:{ type:String },
description:{type:String },
price: String,
rating: {
value: String,
count: {type: String, default: 10},
userrating: [{
uservalue: String,
userid: String
}]
},
imageurl:[String],
userimageurl:[String],
reviews:[{ userid:String,
username: String,
comment:String}]
});
POST 方法在事件架构中推送 userid 和 uservalue 的值。
api.post('/rateevent', function (req, res) {
var userid = req.body.userid;
var uservalue = req.body.uservalue;
var eventid = req.body.eventid;
Event.findById({_id: eventid},
{$push: {rating: {userrating: {uservalue: uservalue, userid: userid}}}},
{upsert: true},
function (err, events) {
if (err) {
res.send(err);
return;
}
else {
calculaterating(events);
}
});
function calculaterating(event) {
event.rating.count++;
event.rating.value = (event.rating.value * (event.rating.count - 1) + uservalue) / event.rating.count;
res.json("rating updated");
}
});
显示以下错误:
{
"name": "MongoError",
"message": "Can't canonicalize query: BadValue Unsupported projection option: $push: { rating: { userrating: { uservalue: \"5\", userid: \"56593f3657e27af8245735d7\" } } }",
"$err": "Can't canonicalize query: BadValue Unsupported projection option: $push: { rating: { userrating: { uservalue: \"5\", userid: \"56593f3657e27af8245735d7\" } } }",
"code": 17287
}
是不是post方法不对?我看过其他 mongodb 文档但找不到这种类型的东西。我是 Node js新手。帮助我。
最佳答案
它应该是Event.update
而不是Event.findById
,而且你的推送操作看起来是错误的。应该是这样的:
Event.findOneAndUpdate(
{_id: eventid},
{$push: {'rating.userrating': {uservalue: uservalue, userid: userid}}},
{new: true},
function (err, events) {
if (err) {
res.send(err);
return;
}
else {
if(events.length > 0){
calculaterating(events);
}
else {
res.json({msg: "Nothing to update"});
}
}
});
function calculaterating(event) {
event = event[0]; //get the object from array
event.rating.count++;
event.rating.value = (event.rating.value * (event.rating.count - 1) + uservalue) / event.rating.count;
Event.update(
{_id: eventid},
{$set: {
'rating.count': event.rating.count,
'rating.value': event.rating.value
}},
function(err, response){
if (err) {
res.send(err);
return;
}
else {
res.json({msg: "rating updated"});
}
});
}
在事件变量中,您将获得在新状态下更新的文档。如果您已通过 {new: false},您将获得更新前的文档。
关于node.js - 错误:Can't canonicalize query: BadValue Unsupported projection option,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33971131/
发行:。我想在外置显示器(Lenovo Thinkvision E27q-20 27)上添加新的分辨率(2560X1440)。可用的最高分辨率为1920x1080。尝试输出添加的新模式时出错。。采取的
该集合有一个文档: { "_id" : ObjectId("54b513933aca242d9915a787"), "carriers" : [ {
数据如下: { "_id" : { "$oid" : "546b79a2e4b0f7bfbaa97cc7" }, "title" : "Eyewitness: Highlands, S
一些文档包含一个名为 status 的字段,其值为 404。我不想返回这些文件,所以我使用 $not 运算符: query = { "venue_id": venue_id, "sta
我是使用 CakePHP 的 MongoDB 新手。 当我编写以下查询时,它会执行得很好。 db.testData.find() { "_id" : ObjectId("53d1f79db81
我试图在 Java 中为 MongoDB 构建查询,但每次运行查询时都会遇到此错误“无法规范化查询:BadValue 文本表达式过多”。 数据库中充满了具有文本属性的文档,这些文档被索引用于全文搜索。
https://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#findOne 说明 max 选项将与数字一起使用。 var
我在 2dsphere 上索引了字段 loc,但无法对 Point 类型的 GeoJson 数据运行 geowithin 查询。 这里是查询: db.test.find( { loc :
这在 2.6.1 中发生在我身上 - 所以,如果有人陷入这个错误,我想我会写出答案。 第一个命令运行良好,但第二个却不行。 db.test.find({$text: {$search: 'york'}
晚上好, 我一直忙于 Mongoosejs + Node.js,目前遇到以下错误。 [Login-01][ERROR] MongoError: Can't canonicalize query: Ba
我正在尝试编译并运行此C++代码 #include void displayMe(void) { glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_P
也许这只是我的愚蠢,但我相信这应该有效。 #include #include struct Display { SDL_Window* window; SDL_GLContext co
MongoError:无法规范化查询:BadValue 不支持的投影选项:$inc:{ count:1 } var totalActiveUser = (req, res, next) => { To
我将 Meteor 与 WireTiger 3.2.12 一起使用 我使用 monogdump 制作了转储当我尝试恢复它时,在一些文件上我收到了这个: error: write to oplog fa
我正在使用 MGO 与 mongodb 进行通信。我想在一个集合中搜索,并按搜索分数对结果进行排序。 collection.Find(bson.M{ "$text": bson.M{"$sea
我正在使用以下代码为一些集成测试创建一个假窗口: class CXWindowsClipboardTests { protected: virtual void SetUp()
用户架构 var UserSchema = new Schema({ name: String, username: { type: String, required: true, i
这个查询有什么问题?我试图在 mongodb 服务器上运行它并收到如下错误 - “异常:错误查询:BadValue 未知顶级运算符:$gte”。谁能告诉我这有什么问题吗? db.sco
当我运行 mongo 时,我收到警告: Failed global initialization: BadValue Invalid or no user locale set. Please ens
我构建了一个将推文存储到 MongoDB 中的 Twitter 抓取工具。现在我正在尝试使用 PyMongo 查询数据。 在我的 MongoDB 中存储的数据: { "_id": {
我是一名优秀的程序员,十分优秀!