例如,如果我按照以下方式对集合进行排序:
`[{id: 1, val: 1}, {id: 2, val: 2} , {id: 3, val: 3}, {id: 4, val: 2}]
等。它如何确定2的哪个val首先出现?
答案 0 :(得分:1)
如果查询正在读取从索引排序的值,则排序很可能会继承文档在索引(https://docs.mongodb.com/manual/reference/method/cursor.sort/#sort-and-index-use)中的存储方式。
例如,如果查询正在读取从索引//sharedworker.js
/*assuming we open page a first, page b second*/
const A = "A";
const B = "B";
let portA;
let portB;
self.addEventListener("connect", function(connectEvent) {
const port = connectEvent.ports[0];
port.addEventListener("message", function(event) {
const data = event.data;
if (data.start) {
if (data.from === A) {
portA = port;
} else {
portB = port;
}
} else {
console.log(data);
portB.postMessage(data);//relay message
}
console.log(`Shared worker memory report
portA, portB: ${portA}, ${portB}`);
});
port.start();
}, false);
预先排序的结果,则结果可能会按字段" val2"排序。
如果文档正在内存中进行排序,那么结果可能无法保证具有超出sort子句中指定的特定顺序。