我的文件看起來像:順利更新特定的子文檔與MongoDB的
{
_id: ObjectId("52d317d7b5c4960000587cd4"),
txid: "7e621eeb02874ab039a8566fd36f4591e65eca65313875221842c53de6907d6c",
vin: [
{
_id: ObjectId("52d317d7b5c4960000587ce9"),
meta_address: "321",
meta_amount: 50,
sequence: 4294967295,
txid: "6749762ae220c10705556799dcec9bb6a54a7b881eb4b961323a3363b00db518",
vout: 0
},
{
_id: ObjectId("52d317d7b5c4960000587ce8"),
sequence: 4294967295,
txid: "c04c413576307737f3ad48efe5d509ebc883e1d04822b3a2eccf6a80a4482932",
vout: 0
},
{
txid: "72d4fc43ac576a4b2f1f35e1b310a2d83a1012a36fdc7813ec237646950233cf",
vout: 0,
sequence: 4294967295,
_id: ObjectId("52d317d7b5c4960000587ce7")
}
]
}
我的查詢是: { txid: '7e621eeb02874ab039a8566fd36f4591e65eca65313875221842c53de6907d6c', 'vin.txid': 'c04c413576307737f3ad48efe5d509ebc883e1d04822b3a2eccf6a80a4482932', 'vin.vout': 0 }
和更新:
{ 'vin.$.meta_address': '321',
'vin.$.meta_amount': 50 }
但是當我運行它,它會更新vin
數組中的第一項,而不是第二項。現在,奇怪的是,如果我將查詢更改爲: { txid: '7e621eeb02874ab039a8566fd36f4591e65eca65313875221842c53de6907d6c', 'vin.txid': 'c04c413576307737f3ad48efe5d509ebc883e1d04822b3a2eccf6a80a4482932'}
然後它工作正常。我認爲問題在於我的查詢查找vin
中的2個元素,但我需要通過兩者進行搜索。我究竟做錯了什麼?