2012-05-22 2 views
5

이 쿼리에는 어떤 문제가 있으며 무엇인지 알 수 없습니다.! MongoDB 쿼리에서 e.eoo() 오류가 발생했습니다.

db.foo.insert({ 
    'created at': new Date(), 
    ooc: false, 
    body: '<p>Moo</p>\n', 
    keywords: [ 'Moo' ], 
    mentioned: [], 
    tags: [], 
    sender: { 
     _id: 'stuff', 
     name: 'lambdadusk', 
     'display name': 'Lambda' 
    } 
}); 

내가 몽고에서 얻을 오류가 나는 MongoDB를 2.0.5을 사용하고 단순히

!e.eoo() 

이다 : 나는 그것이 매우 간단 뭔가 확신합니다. 오류를 검색하는 것은 나에게 많이 말하지 않았다.

+2

굉장! 그 오류는 코드 오류를 볼 때 나는 정확하게 내가 만든 잡음이다. –

+0

@MattGibson 나는 내 어리 석음을 조롱하지 않기를 바란다. – Lanbo

+0

전혀 아닙니다. 시스템이 쓸데없는 오류 메시지를 보게 될 때 쓸모없는 메시지를 만들 것이고 이상하게도 쓸모없는 오류를 모방 한 것은 정말 놀랍습니다. 당신은 그걸로 무엇을 해야할지 모르는 것에 대해 어리 석을 느끼지 않아야합니다. 몽고 데브는 그게 다 당신이 돌아 오는 경우에 대답 할 것이 많습니다. –

답변

2

이전에 시도 했어야했습니다.

문제는 쿼리가 아니지만 컬렉션의 BSON 데이터 파일이 어떻게 든 손상되었습니다. 나는 그 컬렉션을 버리고 다시 시도해야했다.

운 좋게도, 나는 발달 초기에 컬렉션이 비어있었습니다.

0

eoo는 end-of-object를 의미하며 거기에 없으면 JSON에 구문 분석 오류가있을 수 있습니다. 아마 Mongo는 엄격하게 유효한 JSON을 원하기 때문에 모든 문자열에 대해 큰 따옴표를 사용해야하고 새 Date() 비트를 제거해야 할 수도 있습니다.

http://jsonlint.com/은 게시자가 게시 한 코드가 유효하지 않더라도 유효하다고 제안했습니다. Mongo가 BSON을 사용하는 데 도움이되는지 아닌지 확실하지 않으므로 유연성이 향상 될 수 있습니다.

{ 
    "created at": {}, 
    "ooc": false, 
    "body": "<p>Moo</p>\n", 
    "keywords": [ 
     "Moo" 
    ], 
    "mentioned": [], 
    "tags": [], 
    "sender": { 
     "_id": "stuff", 
     "name": "lambdadusk", 
     "displayname": "Lambda" 
    } 
} 
관련 문제