我一直在環顧四周,並沒有看到任何明顯的答案這個問題;對不起,如果有,我錯過了。節點JS/Mongo插入時沒有匹配模式
因此,我現在有一個常規的NodeJS + Mongo堆棧,它一般工作。
我與像這樣的架構(簡化這個問題的目的)工作:
var ObjSchema = new Schema({
name: {
type: String,
default: '',
trim: true
},
description: String,
images: [ImageSchema],
...
});
現在,我不想去使實際圖像的匹配ImageSchema的麻煩數據庫,並且根據this,即使它們不匹配集合模式,也可以明顯地將文檔插入到數據庫中。因此,爲了測試目的,我只是在插入URL時手動輸入URL列表(而不是爲了測試目的而手動輸入),而不是匹配ImageSchema的對象列表。
在互動蒙戈外殼,我已經做了相當於:
db.objects.insert({ name: "Object", description: "My Collection", images: ["http://www.blah.com/img.jpg", "http://foo.com/another.jpg"]... })
交互式蒙戈外殼告訴我,這是好的,給我的「插入到數據庫」爵士樂。當我執行db.objects.find()時,BSON在輸入時正確顯示,其中包含'images'字符串列表,而不是與指定的ImageSchema匹配的內容。
現在,這是蹭。我的節點,而不是交互shell做同樣的命令,而BSON對象我得到的是這種等價的:
{
_id: 54a9ede2da41c93989d3258d,
description: 'My Collection',
images:[], // THIS IS THE PROBLEM
name: 'Object'
}
正如你所看到的,在其他領域的罰款;搜索正確地檢索該對象,並且與該模式匹配的所有字段都可以。但是,在節點搜索中,此文檔的圖像屬性是一個空列表,而db.objects.find()爲我提供了用於測試目的而插入的URL列表。
發生了什麼事?任何想法如何獲取圖像屬性中的URL時拉節點?
我使用的命令是等價的:
Object.find({'name': 'object'}, function(err, obj) {
和我使用的console.log(OBJ)。
你在使用貓鼬嗎? – unobf