Ich habe ein einfaches eingebettetes Dokument:Mongoose FindOne gibt leeres Array-Feld
{
"username":"user001",
"name":"John",
"tasks":[
{
"id":0,
"title":"Candy",
"description":"Lots of candy for you",
"category":"food",
"cost":2500,
"candyTypes":[
{"name":"gum", "type":"sweet", "price":"2"},
{"name":"chocolate", "type":"tasty", "price":"3"}
]
}
]
}
Wenn ich versuche, die Auftragsdaten durch den Mongo Shell abfragen, ich alles bekommen:
db.users.findOne({ 'username': 'user001', 'tasks.id':4 }, {'tasks.$':1})
/* returns */
"tasks":[
{
"id":0,
"title":"Candy",
"description":"Lots of candy for you",
"category":"food",
"cost":2500,
"candyTypes":[
{"name":"gum", "type":"sweet", "price":"2"},
{"name":"chocolate", "type":"tasty", "price":"3"}
]
}
]
Aber als ich versuchen, das gleiche in Mungo zu tun, kommt das candyTypes
Array leer zurück:
Users.findOne({ 'username': username, 'tasks.id':taskId }, {'tasks.$':1}, function (err, data) {
console.log(data);
});
/* returns */
"tasks":[
{
"id":0,
"title":"Candy",
"description":"Lots of candy for you",
"category":"food",
"cost":2500,
"candyTypes":[]
}
]
ich bin ziemlich neu in MongoDB und Mungo, aber nachdem ich die Dokumentation gesucht und durchgesehen habe, kann ich nicht herausfinden, was mir fehlt.
UPDATE
Ich Paar Benutzer es angefordert wird, so ist hier mein Mungo Schema:
var UserSchema = new mongoose.Schema({
username:String,
name:String,
tasks:[{
id: Number,
title: String,
description:String,
category: String,
cost: Number,
candyTypes:[{
title:String,
type:String,
value:String
}]
}]
});
Können Sie uns Ihre Schemadefinition zeigen? – Veeram
versuchen Sie einfach, Ihren Benutzernamen und Ihre Task-ID zu trösten, sind sie die gleichen, die Sie für Mongo-Shell verwenden –
Ja, sie sind die gleichen. Tatsächlich habe ich nur einen einzigen Testbenutzer in dieser db –