Tạo chuỗi JSON đa cấp cha thế nào
-
Bình thường mình tạo chuỗi JSON như thế này:
var query = {}; query.demo = 1;
thường thì như vậy, nhưng bây giờ mình có tới 2 cấp thì làm sao. Ví dụ như:
query.demo.complete = 2
. Cái này nó tới 2 cái chấm.Nhân tiện cho mình hỏi là làm sao để gõ code trong nodejs.vn nhỉ, mình ko thấy format code đâu cả, chỉ thấy mấy cái đơn giản nên mấy cái code hơi khó nhìn
-
Format đẹp rồi nhé bạn !
Như cách bạn đang sử dụng gọi là khai báo
Object Literal
. Đây là một mẫu khai báo nhanh đối tượng trong JavaScript. Bạn cũng nên phân biệt đối tượngjavascript
với kiểu dữ liệuJSON
nhéBạn có thể khai báo
đa cấp
như thế này.var query = { }; query.demo = 1; query.demo2 = { }; query.demo2.complete = 2; // Test console.log(query.demo2.complete);
-
var query = {}; query.demo = {}; query.demo.complete = 2;
var query = { demo: { complete: 2 } };
2 cáhch như trên
-
Cám ơn 2 bác đã giải đáp nhiệt tình cho mình. Nhưng vấn đề thực sự nó thế này ạ, mình lưu data theo dạng embed như sau:
{
"_id" : ObjectId("57cf6bb5ff8ace35f8823ef2"),
"name": "name",
"data" : [
{
"name" : "foo",
"price" : NumberInt(1)
}
]
}
lúc mình tìm trên code thì mình tạo ra 1 chuỗi JSON, sau đó đưa vào trong lệnh find. Cụ thể như sau:
var query = {}
if(req.query.name != undefined)
{
query.name = req.query.name;
}
if(req.query.data != undefined)
{
query.data.name = req.query.data;
}Person.find(query, {}, function (err, person) {
// bla bla.....
})Vấn đề nó nằm ở query.data.name, nó không cho phép làm vậy, nếu như query.name thì được, nhờ các bác tư vấn cho mình cái
-
"data" : [
{
"name" : "foo",
"price" : NumberInt(1)
}
]
Do là "name" nằm trong cặp ngoặc vuông trước nên là nó tính là "name" nằm trong array, bạn thử query.data[0].name xem
-
để lát về mình thử xem, mà sao nơi post bài ở 4rum mình không có nơi cho gõ code ta, hay chỉ có mod với admin mới tạo code được, nhiều khi đọc mỏi cả mắt
-
@truc Bạn đọc hướng dẫn này nhé
@Vũ said in Không gán được dữ liệu cho tham số trong vòng lặp điều kiện?:
@Bóng-Đá-Vũ Code format dùng
markdown
. Bạn mần ở đây nhé
https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet
-
mình tìm ra được cách làm rồi. làm vậy:
var query = {}
if(req.query.name != undefined)
{
query.name = req.query.name;
}
if(req.query.data != undefined)
{
query["data.name"] = req.query.data;
}Person.find(query, {}, function (err, person) {
// bla bla.....
})Lúc truy vấn có embed document thì phải dùng tới cái này: query["data.name"]