我試圖創建一個複合關鍵字作爲我的「_id」字段,它需要一些地理信息以及其他屬性。它看起來是這樣的:您可以在Mongo的單個字段上創建多個索引嗎?這是什麼樣子?
{_id: {lat: 50, lon: 50, name: "some name"}}
創建文檔後,蒙戈默認會分配一個指標,而忽略我的命令
db.coll.ensureIndex(_id: "2d")
有沒有辦法做到這一點,所以我可以有我的_id字段索引可以通過地理索引和常規索引?
我試圖創建一個複合關鍵字作爲我的「_id」字段,它需要一些地理信息以及其他屬性。它看起來是這樣的:您可以在Mongo的單個字段上創建多個索引嗎?這是什麼樣子?
{_id: {lat: 50, lon: 50, name: "some name"}}
創建文檔後,蒙戈默認會分配一個指標,而忽略我的命令
db.coll.ensureIndex(_id: "2d")
有沒有辦法做到這一點,所以我可以有我的_id字段索引可以通過地理索引和常規索引?
您有兩種選擇。他們都需要在模式的變化:
讓_id
一個唯一的哈希,並把你的座標,在一個單獨的領域有二維指數:
{_id:「標準的ObjectId或你的哈希」名稱: 「有些名」,LOC:[50,50]}
如果你真的想_id是唯一場(我不會推薦):
{_id:{名稱:「某些名字「,loc:[50,50]}}
db.coll.ensureIndex({ '_ id.loc': '2D'})
從MongoDB的文檔:
歡迎廣大用戶使用自己的約定創建一個ID ; _id值可以是任何類型,除了數組以外,只要它是唯一的。不允許數組,因爲它們是Multikeys。
你也必須確保它們也是唯一的。此外,這將混淆一些東西,假定你有一個BSON ID
我只是索引這些領域自己並建立一個複合索引。