У меня есть простой набор для понимать своего рода в MongoDBсортировки массива и массив Object MongoDb
мои документы:
{
"_id" : ObjectId("54b94985d74d670613e4fd35"),
"tag" : [
"A",
"B",
"Z"
]
}
{
"_id" : ObjectId("54b949c9d74d670613e4fd36"),
"tag" : [
"D",
"E",
"F"
]
}
{
"_id" : ObjectId("54b949dfd74d670613e4fd37"),
"tag" : [
"G",
"H",
"I"
]
}
Когда я сортирую по меткам У меня есть эти результаты
db.candy.find().sort({tag:1})
{
"_id" : ObjectId("54b94985d74d670613e4fd35"),
"tag" : [
"A",
"B",
"Z"
]
}
{
"_id" : ObjectId("54b949c9d74d670613e4fd36"),
"tag" : [
"D",
"E",
"F"
]
}
{
"_id" : ObjectId("54b949dfd74d670613e4fd37"),
"tag" : [
"G",
"H",
"I"
]
}
Вместо этого с тегом: -1
db.candy.find().sort({tag:-1})
{
"_id" : ObjectId("54b94985d74d670613e4fd35"),
"tag" : [
"A",
"B",
"Z"
]
}
{
"_id" : ObjectId("54b949dfd74d670613e4fd37"),
"tag" : [
"G",
"H",
"I"
]
}
{
"_id" : ObjectId("54b949c9d74d670613e4fd36"),
"tag" : [
"D",
"E",
"F"
]
}
Результаты очень похожи, первый объект Это то же самое и меняет только второе и третье. Те же результаты с массивом объекта. Мой вопрос: Как это работает? Я знаю, что буква A является первой буквой алфавита (ASCII CODE), а Z - последней. Монго проверить каждый элемент (или объект) массива? И почему порядок внутри массива тот же, когда я использую tag: -1 и tag: 1? Я ожидаю, что-то вроде
тег: 1
{
"_id" : ObjectId("54b94985d74d670613e4fd35"),
"tag" : [
"A",
"B",
"Z"
]
}
И тег: -1
{
"_id" : ObjectId("54b94985d74d670613e4fd35"),
"tag" : [
"Z",
"A",
"B"
]
}
спасибо, в этом случае http://pastebin.com/igKBxKNJ, если Я делаю: 'db.coll.find(). Sort ({" post ": 1})' или 'db.coll.find(). Sort ({" post.tag ": 1})' Я получаю тот же Результат. Что отличается от 'post' и' post.tag'? – monkeyUser