错误:键$ conditionalHandlers不能以’$’mongodb开头

我有mongodb的问题,尤其是node.js的mongoose包。 我有以下架构:

var Schema = mongoose.Schema; var location = new Schema ({ nomville: {type: String, required: true}, description: {type: String, required: true}, quartier: [quartier], critere: [misc], modified: {type: Date, default: Date.now} }); var misc = new Schema ({ publictransp: {type: Number}, culture: {type: Number}, traffic: {type: Number}, nature: {type: Number}, supermarket: {type: Number}, school: {type: Number}, sport: {type: Number}, nightlife: {type: Number}, mean: {type: Number} }); var rue = new Schema ({ nomrue: {type: String}, modified: {type: Date, default: Date.now} }); var quartier = new Schema ({ nomquartier: {type: String}, listerue: [rue], modified: {type: Date, default: Date.now} }) var ObjModel = mongoose.model('Obj',location); 

当我尝试使用Jquery查询发布此模式的对象时,我得到:

[错误:键$ conditionalHandlers不能以’$’开头]

任何的想法 ? 我完全坚持这个。

EDIT1:这是postfunction:

 //CREATE PRODUCTS app.post('/api/products', function(req,res){ var product; console.log("POST: "); console.log(req.body); product = new ObjModel({ nomville: req.body.nomville, description: req.body.description, quartier: [quartier], critere: [misc], }); product.save(function(err){ if (!err) { return console.log("created"); } else { return console.log(err); } }); return res.send(product); }); 

EDIT2:这是查询

  jQuery.post("/api/products", { "nomville": "Strasbourg", "description": "Ville de Strasbourg", "quartier": [ { "nomquartier": "Centre", "listerue": [ { "nomrue": "22 Novembre" }, { "nomrue": "Abattoir" }, { "nomrue": "Fonderie" }, { "nomrue": "Francs Bourgeois" } ] }, { "nomquartier": "Cité de l'Ill", "listerue": [ { "nomrue": "Anguille (chemin de l)" }, { "nomrue": "Civelles (promenade des)" }, { "nomrue": "Hechner (rue)" }, { "nomrue": "Phario (pont)" } ] }, { "nomquartier": "Krutenau", "listerue": [ { "nomrue": "Abreuvoir (rue de l)" }, { "nomrue": "Bain Finkwiller (rue du)" }, { "nomrue": "Fustel de Coulanges (quai)" }, { "nomrue": "Hôpital (place de l)" } ] } ], "critere":[ { "publictransp": 2, "culture": 8, "traffic": 5, "nature": 7, "supermarket": 3, "school": 5, "sport": 6, "nightlife": 4, "mean": 5 }, ] }, function(data, textStatus, jqXHR) { console.log("Post resposne:"); console.dir(data); console.log(textStatus); console.dir(jqXHR); }); 

这是我在发布查询后得到的结果:

 [ { "nomville": "Strasbourg", "description": "Ville de Strasbourg", "_id": "526ecdd3a78290010c000004", "__v": 0, "modified": "2013-10-28T20:49:23.235Z", "critere": [], "quartiers": [ { "_id": "526ecdd3a78290010c000005", "listerue": [] } ] } ] 

这是正常的??

在定义任一模式之前,您在location模式定义中引用了criteremisc 。 这导致了一些有点神秘的错误,可能是因为mongoose将无效查询拼凑在一起,因为架构定义中存在意外的undefined值。

除此之外,我不知道你在这里要做什么:

 product = new ObjModel({ nomville: req.body.nomville, description: req.body.description, // Are the next two lines a mistake? It appears as though you're trying // to create an object using the schemas. quartier: [quartier], critere: [misc], });