'Is there any way to simplify the content (one of the colloum retrieved from the mongodb data) by using monk?
var monk = require('monk'); var db = monk('127.0.0.1:27017/db');
var collection = db.get('content'); newscol.find({}, {}).then((data) => {console.log(data);})
Output:
[
{
_id: 1,
content: 'a b c d e f g h i j k l m n o p q r s t u v w x y z ',
},
{
_id: 2,
content: 'b c d e f g h i j k l m n o p q r s t u v w x y z',
},
{
_id: 3,
content: 'c d e f g h i j k l m n o p q r s t u v w x y z',
}
]
Tried to retrieve the data in a normal way. But is there any way to retrieve only the first few words of the content as below?
[
{
_id: 1,
content: 'a b c d...',
},
{
_id: 2,
content: 'b c d e...',
},
{
_id: 3,
content: 'c d e f....',
}
]
I am trying to use the collection.aggregate but seems it doesn't help with the problem.
Solution 1:[1]
db.collection.aggregate([
{
$set: {
content: {
$reduce: {
input: { $slice: [ { $split: [ "$content", " " ] }, 4 ] },
initialValue: "",
in: {
$concat: [
"$$value",
{ $cond: [ { $eq: [ "$$value", "" ] }, "", " " ] },
"$$this"
]
}
}
}
}
}
])
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | YuTing |
