希望再次需要您的幫助,希望對這個項目來說,我在這裏的答案將是最後一個。我已經看到這是一個相當常見的問題,但我已經嘗試了另一個Stack Overflow post和Google Group之一的提示,但這些解決方案並未適用於我。通過ObjectId查詢Mongoose Schema
我的代碼是一個有點像:
mongoose = require('mongoose');
Schema = mongoose.Schema;
mongoose.connect(MONGO_SERVER);
ObjectId = Schema.ObjectId;
var RacesSchema = new Schema({
venue_id : { type: mongoose.Schema.ObjectId, ref: 'Venues' },
racetype : String
});
var races = mongoose.model('Races', RacesSchema);
function test() {
var MyObjectId = require('mongoose').Types.ObjectId;
queryVenue = new MyObjectId("50e3dcdbf30375180c078f64");
races.find({venue_id: queryVenue, racetype:'Test'})
.exec(function(err,data) {
}
test();
但我沒有得到任何結果,我知道有。
非常感謝提前!
UPDATE
有最小化上面的代碼示例,這個測試工作,如果我查詢自身的字符串值,只是查詢的的ObjectId是它失敗了,我知道它的存在。
JSON UPDATE
以下是我在尋找:
{
"_id" : ObjectId("50e3dcddf30375180c078f85"),
"venue_id" : "50e3dcdbf30375180c078f64",
"racetype" : "A"
}
而且突然的,我相信我的答案已經很清楚了我。僅僅是因爲venue_id實際上是一個字符串?如果是這樣,我可以保持我的貓鼬模式的方式,並在做查找是一個字符串的點查詢嗎?或者我應該改變這些值的存儲方式(從我開發的一個單獨的.net應用程序中)插入爲ObjectId的?
目前,對於另一個查詢,當前的mongoose模式和數據庫[實際設置]的方式,使用populate()可以很好地填充被引用表格(venue_id)的結果和該模型的方式目前正在設置中,唯一的區別就是上面的查詢,我沒有指定venue_id ...
謝謝。
什麼是obj.venue_id? – 2013-02-21 13:23:36
你能提供一個能夠再現問題的最小例子嗎?如果沒有文檔和您使用的'obj.venue_id'值,它將很難提供幫助。 – JohnnyHK 2013-02-21 14:42:14
你也可以顯示你試圖找到的文檔的JSON? – JohnnyHK 2013-02-22 13:48:08