通過其ID的數組項這是可能的:搜索在MongoDB中收集
我想更新項目中的「用戶故事」中的一個,可以有很多項目,很多用戶故事在一個項目中。我想通過它的id選擇項目,然後根據它的id在該項目中選擇一個用戶故事並更新其字段。
問題:可以使用什麼MongoDB查詢?
的MongoDB數據庫切
{
"_id": ObjectId("4ecee95d6ce4004424000001"), //Project ID
"owner": "test2",
"stories": [
{
"_id": "75vUURHfE1bN9vkbwC2kR85s", //User story Id
"title": "ok",
"deadline": "10\/10\/2011",
"description": "ok",
"sp": "5",
"value": "5",
"roi": "1.00",
"type": "story",
"lane": 0
},
{
"_id": "nTsa8x6vFJvdXfFtEHbcFIyl",
"title": "test",
"deadline": "10\/10\/2011",
"description": "test",
"sp": "5",
"value": "5",
"roi": "1.00",
"type": "story",
"lane": 0
},
{
"_id": "i8Nd3HOhz7hZFzzInfCcapCe",
"title": "test #2",
"deadline": "10\/10\/2011",
"description": "test #2",
"sp": "5",
"value": "5",
"roi": "1.00",
"type": "story",
"lane": 0
}
],
"team": [
],
"title": "ok"
}
我目前使用socket.io,並在插座事件檢索到以下數據:
JSON
var story = {
_id: data.id,
title: data.title,
deadline: data.deadline,
description: data.description,
sp: data.sp,
value: data.value,
roi: data.roi,
type: data.type
}
我想更新mongo數據庫中「故事」內的故事e使用上面的JSON對象。
感謝這似乎與_id工作。我使用_id是因爲它允許我將自己的id代替mongodb生成的id。否則我會有這樣的:_id:ObjectId(「4ecee95d6ce4004424000001」),id:i8Nd3HOhz7hZFzzInfCcapCe。 – Jack
他指的是爲了清晰起見而不應該有_id字段的嵌入式文檔。 –
還沒有認真嘗試過,但我認爲嵌入_id字段沒問題。像Mongoid這樣的庫甚至可以自動創建這些庫。 – Thilo