我有一个包含以下数据的seeds.js文件:
var newBus = new Bus({
am: {
route: [
{
coords: {lat: 35.645329, lng: -84.068154},
address: "5408 Hutton Ridge Rd"
}
}
}
当我打电话
newBus.save(function(err, data) {
if (err) throw err;
else console.log(data);
});
它将它存储为:
"am" : {
"route" : [
{
"address" : "5408 Hutton Ridge Rd",
"coords" : {
"lng" : -84.068154,
"lat" : 35.645329
}
}
]
}
我刚注意到它将lat, lng
的顺序更改为lng, lat
。我不认为这很重要,但是当我对种子数据进行更新时,更新只有在我找到与特定lng, lat
匹配的数组时才有效。当我尝试找到与lat, lng
匹配的内容时,它无法正常工作。
那么为什么MongoDB / Mongoose会对数据进行重新排序?
答案 0 :(得分:0)
这不是一个数组,它是一个字典(javascript中的对象)。这不存储任何订单。它在文档中说。
您可以在此处详细了解:http://www.ecma-international.org/publications/files/ECMA-ST-ARCH/ECMA-262,%203rd%20edition,%20December%201999.pdf(第4.3.3节)
说:
对象
对象是Object类型的成员。这是一个无序 属性集合,每个属性包含原始值, 对象或功能。存储在对象属性中的函数是 称为方法。