2014-07-07 4 views
3

개체 배열을 삽입 할 때 외래 문자를 추가하지 않고 클린 인서트를 얻으려면 어떻게해야합니까? 수동으로 mongodb 쉘에서 삽입을 수행하면 예상 결과를 얻지 만, 그렇지 않으면 작동하지 않는 것 같습니다.유성을 사용하여 mongodb에 객체의 배열을 삽입하려면 어떻게해야합니까?

db.test.insert([{name:"john"},{name:"jane"}]); 

산출 :

는 내가 달성하기 위해 노력하고있어 MongoDB의 쉘의 결과입니다

db.test.find() 
{ "_id" : ObjectId("53bb0768dc2469c1f440a3c2"), "name" : "john" } 
{ "_id" : ObjectId("53bb0768dc2469c1f440a3c3"), "name" : "jane" } 

을하지만, 나는 그것을 얻을하지 않습니다 그래서 아래의 코드를 사용 올바른 조합을 찾기 위해 여러 가지 방법으로 객체 배열을 삽입하는 방법을 테스트 해보십시오.

나는 데이터베이스에서 무엇을 얻을
[ { name: 'john' }, { name: 'jane' } ] 
[object Object],[object Object] 
[{"name":"john"},{"name":"jane"}] 

: 콘솔에서 등 db.test.find는()

{ "0" : { "name" : "john" }, "1" : { "name" : "jane" }, "_id" : "SYkv79XLNQsWgkYmw" } 
{ "0" : "[", "1" : "o", "2" : "b", "3" : "j", "4" : "e", "5" : "c", "6" : "t", "7" : " ", "8" : "O", "9" : "b", "10" : "j", "11" : "e", "12" : "c", "13" : "t", "14" : "]", "15" : ",", "16" : "[", "17" : "o", "18" : "b", "19" : "j", "20" : "e", "21" : "c", "22" : "t", "23" : " ", "24" : "O", "25" : "b", "26" : "j", "27" : "e", "28" : "c", "29" : "t", "30" : "]", "_id" : "SiQ3ZpGfeBqj4mXB2" } 
{ "0" : "[", "1" : "{", "2" : "\"", "3" : "n", "4" : "a", "5" : "m", "6" : "e", "7" : "\"", "8" : ":", "9" : "\"", "10" : "j", "11" : "o", "12" : "h", "13" : "n", "14" : "\"", "15" : "}", "16" : ",", "17" : "{", "18" : "\"", "19" : "n", "20" : "a", "21" : "m", "22" : "e", "23" : "\"", "24" : ":", "25" : "\"", "26" : "j", "27" : "a", "28" : "n", "29" : "e", "30" : "\"", "31" : "}", "32" : "]", "_id" : "kKRiR8NjNJefBYRya" } 
{ "0" : { "name" : "john" }, "1" : { "name" : "jane" }, "_id" : "RBrvkrw5xZaEGdczF" } 
{ "0" : { "name" : "john" }, "1" : { "name" : "jane" }, "_id" : "2cfWJqHY4aJ6yF68s" } 

나는 간단한 'test.insert (a)는'나에게주고 기대했던 내가 원하지만 배열 인덱스가 포함되어 있습니다. 배열 인덱스없이 유성으로부터 mongodb에 삽입 할 객체 배열을 어떻게 만들 수 있습니까? Stringify는 배열의 깨끗한 직렬 연결을 만드는 것처럼 보였지만, 분명히이 작업을 수행하는 방법을 모르겠습니다. 이 목적은 메모리에 복잡한 객체 배열을 만들고 대량 삽입을 할 수있게하기 위해서입니다.

답변

1

Meteor를 사용하면 루트 수준의 문서 만 개체로 저장할 수 있습니다. 배열을 지정하면 개체로 변환하려고 시도합니다. 이것이 이상한 결과를 얻는 이유입니다. 당신은 루트 문서

test = new Meteor.Collection("test"); 
a = new Array(); 
a.push({name:"john"}); 
a.push({name:"jane"}); 

var doc = { 
    names: a 
} 

test.insert(a); 

[]로 문서를 저장 할 수 없습니다의 일부로 저장 배열에 문서를 조정해야합니다.

+0

잘 모르겠습니다. 내가하는 일 : db.test.insert ([{name : "john"}, {name : "jane"}]); 이것은 코드에서와 똑같은데, 쉘에서 작동하지만 코드에서는 작동하지 않습니다. – sday

+0

제 생각에 대량 삽입물은 []를 허용합니다. 일괄 삽입이 작동하기위한 요구 사항이 아닙니까? – sday

+0

오, 당신이하려고 한 것을 봅니다. 불행히도 유성은 mongo가하는 것과 같은 방법으로 벌크 삽입을 아직 지원하지 않습니다. – Akshat

0
Template.first.rendered=function(){ 
    var a=[]; 
    a.push({name:"rahul"}); 
    a.push({name:"vidu"}); 
    Meteor.call("array", a , function(error,result){ 
    }); 
}; 
관련 문제